@mml-io/networked-dom-protocol 0.18.0 → 0.19.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.
Files changed (41) hide show
  1. package/README.md +6 -0
  2. package/build/index.d.ts +1 -0
  3. package/build/index.js +902 -0
  4. package/build/index.js.map +3 -3
  5. package/build/networked-dom-v0.1/constants.d.ts +1 -0
  6. package/build/networked-dom-v0.1/from-client.d.ts +3 -3
  7. package/build/networked-dom-v0.1/from-server.d.ts +15 -15
  8. package/build/networked-dom-v0.1/index.d.ts +1 -0
  9. package/build/networked-dom-v0.2/BufferReader.d.ts +12 -0
  10. package/build/networked-dom-v0.2/BufferWriter.d.ts +15 -0
  11. package/build/networked-dom-v0.2/common-structs/attributes.d.ts +5 -0
  12. package/build/networked-dom-v0.2/common-structs/index.d.ts +2 -0
  13. package/build/networked-dom-v0.2/common-structs/nodeDescription.d.ts +20 -0
  14. package/build/networked-dom-v0.2/constants.d.ts +1 -0
  15. package/build/networked-dom-v0.2/decodeClientMessages.d.ts +3 -0
  16. package/build/networked-dom-v0.2/decodeServerMessages.d.ts +3 -0
  17. package/build/networked-dom-v0.2/encodeClientMessage.d.ts +3 -0
  18. package/build/networked-dom-v0.2/encodeServerMessage.d.ts +3 -0
  19. package/build/networked-dom-v0.2/index.d.ts +11 -0
  20. package/build/networked-dom-v0.2/messageTypes.d.ts +17 -0
  21. package/build/networked-dom-v0.2/messages/from-client/connectUsers.d.ts +8 -0
  22. package/build/networked-dom-v0.2/messages/from-client/disconnectUsers.d.ts +8 -0
  23. package/build/networked-dom-v0.2/messages/from-client/event.d.ts +12 -0
  24. package/build/networked-dom-v0.2/messages/from-client/index.d.ts +9 -0
  25. package/build/networked-dom-v0.2/messages/from-client/pong.d.ts +8 -0
  26. package/build/networked-dom-v0.2/messages/from-server/attributesChanged.d.ts +10 -0
  27. package/build/networked-dom-v0.2/messages/from-server/batchEnd.d.ts +6 -0
  28. package/build/networked-dom-v0.2/messages/from-server/batchStart.d.ts +6 -0
  29. package/build/networked-dom-v0.2/messages/from-server/changeHiddenFrom.d.ts +10 -0
  30. package/build/networked-dom-v0.2/messages/from-server/changeVisibleTo.d.ts +10 -0
  31. package/build/networked-dom-v0.2/messages/from-server/childrenAdded.d.ts +11 -0
  32. package/build/networked-dom-v0.2/messages/from-server/childrenRemoved.d.ts +10 -0
  33. package/build/networked-dom-v0.2/messages/from-server/documentTime.d.ts +8 -0
  34. package/build/networked-dom-v0.2/messages/from-server/error.d.ts +8 -0
  35. package/build/networked-dom-v0.2/messages/from-server/index.d.ts +29 -0
  36. package/build/networked-dom-v0.2/messages/from-server/ping.d.ts +9 -0
  37. package/build/networked-dom-v0.2/messages/from-server/snapshot.d.ts +10 -0
  38. package/build/networked-dom-v0.2/messages/from-server/textChanged.d.ts +9 -0
  39. package/build/networked-dom-v0.2/messages/from-server/warning.d.ts +8 -0
  40. package/build/networked-dom-v0.2/messages/index.d.ts +2 -0
  41. package/package.json +4 -4
package/build/index.js CHANGED
@@ -1 +1,903 @@
1
+ // src/networked-dom-v0.1/constants.ts
2
+ var networkedDOMProtocolSubProtocol_v0_1 = "networked-dom-v0.1";
3
+
4
+ // src/networked-dom-v0.2/BufferReader.ts
5
+ var textDecoder = new TextDecoder();
6
+ var BufferReader = class {
7
+ constructor(buffer) {
8
+ this.buffer = buffer;
9
+ this.offset = 0;
10
+ }
11
+ readUInt8() {
12
+ return this.buffer[this.offset++];
13
+ }
14
+ readBoolean() {
15
+ return this.readUInt8() === 1;
16
+ }
17
+ readUVarint(signed = false) {
18
+ let lo = 0;
19
+ let hi = 0;
20
+ let i = 0;
21
+ for (; i < 4; ++i) {
22
+ lo = (lo | (this.buffer[this.offset] & 127) << i * 7) >>> 0;
23
+ if (this.buffer[this.offset++] < 128) {
24
+ return signed ? loAndHiAsSigned(lo, hi) : loAndHiAsUnsigned(lo, hi);
25
+ }
26
+ }
27
+ lo = (lo | (this.buffer[this.offset] & 127) << 28) >>> 0;
28
+ hi = (hi | (this.buffer[this.offset] & 127) >> 4) >>> 0;
29
+ if (this.buffer[this.offset++] < 128) {
30
+ return signed ? loAndHiAsSigned(lo, hi) : loAndHiAsUnsigned(lo, hi);
31
+ }
32
+ i = 0;
33
+ for (; i < 5; ++i) {
34
+ hi = (hi | (this.buffer[this.offset] & 127) << i * 7 + 3) >>> 0;
35
+ if (this.buffer[this.offset++] < 128) {
36
+ return signed ? loAndHiAsSigned(lo, hi) : loAndHiAsUnsigned(lo, hi);
37
+ }
38
+ }
39
+ throw Error("invalid varint encoding");
40
+ }
41
+ readUVarintPrefixedString() {
42
+ const readLength = this.readUVarint();
43
+ let string = "";
44
+ let hasNonAscii = false;
45
+ for (let i = 0; i < readLength; i++) {
46
+ const charValue = this.buffer[this.offset + i];
47
+ if (charValue < 128) {
48
+ string += String.fromCharCode(charValue);
49
+ } else {
50
+ hasNonAscii = true;
51
+ break;
52
+ }
53
+ }
54
+ if (!hasNonAscii) {
55
+ this.offset += readLength;
56
+ return string;
57
+ }
58
+ const result = textDecoder.decode(this.buffer.subarray(this.offset, this.offset + readLength));
59
+ this.offset += readLength;
60
+ return result;
61
+ }
62
+ // returns the string and a boolean indicating if the string was negative length
63
+ readVarintPrefixedString() {
64
+ const length = this.readVarint();
65
+ const negativeLength = length < 0;
66
+ const readLength = negativeLength ? -length : length;
67
+ let string = "";
68
+ let hasNonAscii = false;
69
+ for (let i = 0; i < readLength; i++) {
70
+ const charValue = this.buffer[this.offset + i];
71
+ if (charValue < 128) {
72
+ string += String.fromCharCode(charValue);
73
+ } else {
74
+ hasNonAscii = true;
75
+ break;
76
+ }
77
+ }
78
+ if (!hasNonAscii) {
79
+ this.offset += readLength;
80
+ return [string, negativeLength];
81
+ }
82
+ const result = textDecoder.decode(this.buffer.subarray(this.offset, this.offset + readLength));
83
+ this.offset += readLength;
84
+ return [result, negativeLength];
85
+ }
86
+ readVarint() {
87
+ return this.readUVarint(true);
88
+ }
89
+ isEnd() {
90
+ return this.offset >= this.buffer.length;
91
+ }
92
+ };
93
+ function loAndHiAsSigned(lo, hi) {
94
+ const value = lo + hi * 4294967296;
95
+ if (value & 1) {
96
+ return -(value + 1) / 2;
97
+ }
98
+ return value / 2;
99
+ }
100
+ function loAndHiAsUnsigned(lo, hi) {
101
+ return lo + hi * 4294967296;
102
+ }
103
+
104
+ // src/networked-dom-v0.2/BufferWriter.ts
105
+ var textEncoder = new TextEncoder();
106
+ var BufferWriter = class {
107
+ constructor(initialLength) {
108
+ this.buffer = new Uint8Array(initialLength);
109
+ this.offset = 0;
110
+ }
111
+ // Write an unsigned 8-bit integer
112
+ writeUint8(value) {
113
+ this.ensureCapacity(1);
114
+ this.buffer[this.offset] = value & 255;
115
+ this.offset += 1;
116
+ }
117
+ writeBoolean(bool) {
118
+ this.writeUint8(bool ? 1 : 0);
119
+ }
120
+ // Write an array of bytes
121
+ writeBytes(bytes) {
122
+ this.ensureCapacity(bytes.byteLength);
123
+ this.buffer.set(bytes, this.offset);
124
+ this.offset += bytes.byteLength;
125
+ }
126
+ // Get the written bytes as a Uint8Array
127
+ getBuffer() {
128
+ return this.buffer.subarray(0, this.offset);
129
+ }
130
+ getWrittenLength() {
131
+ return this.offset;
132
+ }
133
+ // Ensure there is enough capacity in the buffer
134
+ ensureCapacity(neededSpace) {
135
+ while (this.offset + neededSpace > this.buffer.length) {
136
+ this.expandBuffer();
137
+ }
138
+ }
139
+ // Expand the buffer by doubling its current length
140
+ expandBuffer() {
141
+ const newBuffer = new Uint8Array(this.buffer.length * 2);
142
+ newBuffer.set(this.buffer);
143
+ this.buffer = newBuffer;
144
+ }
145
+ writeUVarint(x) {
146
+ if (x <= 268435455) {
147
+ this.ensureCapacity(4);
148
+ while (x >= 128) {
149
+ this.buffer[this.offset] = x & 127 | 128;
150
+ this.offset++;
151
+ x >>>= 7;
152
+ }
153
+ this.buffer[this.offset] = x & 127;
154
+ this.offset++;
155
+ return;
156
+ }
157
+ this.ensureCapacity(10);
158
+ let lo = 0;
159
+ let hi = 0;
160
+ if (x !== 0) {
161
+ lo = x >>> 0;
162
+ hi = (x - lo) / 4294967296 >>> 0;
163
+ }
164
+ while (hi) {
165
+ this.buffer[this.offset++] = lo & 127 | 128;
166
+ lo = (lo >>> 7 | hi << 25) >>> 0;
167
+ hi >>>= 7;
168
+ }
169
+ while (lo > 127) {
170
+ this.buffer[this.offset++] = lo & 127 | 128;
171
+ lo = lo >>> 7;
172
+ }
173
+ this.buffer[this.offset++] = lo;
174
+ }
175
+ writeVarint(x) {
176
+ if (x >= 0) {
177
+ this.writeUVarint(x * 2);
178
+ } else {
179
+ this.writeUVarint(-x * 2 - 1);
180
+ }
181
+ }
182
+ writeLengthPrefixedString(value, varint = false, negativeLength = false) {
183
+ const originalOffset = this.offset;
184
+ if (varint) {
185
+ this.writeVarint(negativeLength ? -value.length : value.length);
186
+ } else {
187
+ this.writeUVarint(value.length);
188
+ }
189
+ this.ensureCapacity(value.length);
190
+ let nonAscii = false;
191
+ for (let i = 0; i < value.length; i++) {
192
+ const charCode = value.charCodeAt(i);
193
+ if (charCode > 127) {
194
+ nonAscii = true;
195
+ break;
196
+ }
197
+ this.buffer[this.offset++] = charCode;
198
+ }
199
+ if (!nonAscii) {
200
+ return;
201
+ }
202
+ this.offset = originalOffset;
203
+ let encodedLength = value.length;
204
+ this.ensureCapacity(encodedLength);
205
+ while (true) {
206
+ this.offset = originalOffset;
207
+ if (varint) {
208
+ this.writeVarint(negativeLength ? -encodedLength : encodedLength);
209
+ } else {
210
+ this.writeUVarint(encodedLength);
211
+ }
212
+ const offsetAfterVarint = this.offset;
213
+ const varintLength = offsetAfterVarint - originalOffset;
214
+ const writeBuffer = new Uint8Array(this.buffer.buffer, this.offset);
215
+ const { read, written } = textEncoder.encodeInto(value, writeBuffer);
216
+ if (read !== value.length) {
217
+ this.expandBuffer();
218
+ continue;
219
+ }
220
+ if (written !== encodedLength) {
221
+ encodedLength = written;
222
+ this.offset = originalOffset;
223
+ if (varint) {
224
+ this.writeVarint(negativeLength ? -encodedLength : encodedLength);
225
+ } else {
226
+ this.writeUVarint(encodedLength);
227
+ }
228
+ const newOffsetAfterVarint = this.offset;
229
+ const actualVarintLength = newOffsetAfterVarint - originalOffset;
230
+ if (actualVarintLength !== varintLength) {
231
+ continue;
232
+ } else {
233
+ }
234
+ }
235
+ this.offset += written;
236
+ return;
237
+ }
238
+ }
239
+ };
240
+
241
+ // src/networked-dom-v0.2/common-structs/attributes.ts
242
+ function encodeAttribute(writer, key, value) {
243
+ if (value === null) {
244
+ writer.writeLengthPrefixedString(key, true, true);
245
+ } else {
246
+ writer.writeLengthPrefixedString(key, true, false);
247
+ writer.writeLengthPrefixedString(value);
248
+ }
249
+ }
250
+ function encodeAttributes(writer, attributes) {
251
+ writer.writeUVarint(attributes.length);
252
+ for (let i = 0; i < attributes.length; i++) {
253
+ encodeAttribute(writer, attributes[i][0], attributes[i][1]);
254
+ }
255
+ }
256
+ function decodeAttributes(buffer) {
257
+ const attributesLength = buffer.readUVarint();
258
+ const attributes = [];
259
+ for (let i = 0; i < attributesLength; i++) {
260
+ const [key, negativeLength] = buffer.readVarintPrefixedString();
261
+ if (negativeLength) {
262
+ attributes.push([key, null]);
263
+ continue;
264
+ }
265
+ const value = buffer.readUVarintPrefixedString();
266
+ attributes.push([key, value]);
267
+ }
268
+ return attributes;
269
+ }
270
+
271
+ // src/networked-dom-v0.2/common-structs/nodeDescription.ts
272
+ function encodeNodeDescription(writer, nodeDescription) {
273
+ writer.writeUVarint(nodeDescription.nodeId);
274
+ if (nodeDescription.type === "text") {
275
+ writer.writeLengthPrefixedString("");
276
+ writer.writeLengthPrefixedString(nodeDescription.text);
277
+ return;
278
+ }
279
+ writer.writeLengthPrefixedString(nodeDescription.tag);
280
+ encodeAttributes(writer, nodeDescription.attributes);
281
+ if (!nodeDescription.visibleTo) {
282
+ writer.writeUVarint(0);
283
+ } else {
284
+ writer.writeUVarint(nodeDescription.visibleTo.length);
285
+ for (let i = 0; i < nodeDescription.visibleTo.length; i++) {
286
+ writer.writeUVarint(nodeDescription.visibleTo[i]);
287
+ }
288
+ }
289
+ if (!nodeDescription.hiddenFrom) {
290
+ writer.writeUVarint(0);
291
+ } else {
292
+ writer.writeUVarint(nodeDescription.hiddenFrom.length);
293
+ for (let i = 0; i < nodeDescription.hiddenFrom.length; i++) {
294
+ writer.writeUVarint(nodeDescription.hiddenFrom[i]);
295
+ }
296
+ }
297
+ writer.writeUVarint(nodeDescription.children.length);
298
+ for (let i = 0; i < nodeDescription.children.length; i++) {
299
+ encodeNodeDescription(writer, nodeDescription.children[i]);
300
+ }
301
+ }
302
+ function decodeNodeDescription(buffer) {
303
+ const nodeId = buffer.readUVarint();
304
+ const tag = buffer.readUVarintPrefixedString();
305
+ if (tag === "") {
306
+ const text = buffer.readUVarintPrefixedString();
307
+ return { type: "text", nodeId, text };
308
+ }
309
+ const attributes = decodeAttributes(buffer);
310
+ const visibleToLength = buffer.readUVarint();
311
+ let visibleTo;
312
+ if (visibleToLength !== 0) {
313
+ visibleTo = [];
314
+ for (let i = 0; i < visibleToLength; i++) {
315
+ visibleTo.push(buffer.readUVarint());
316
+ }
317
+ }
318
+ const hiddenFromLength = buffer.readUVarint();
319
+ let hiddenFrom;
320
+ if (hiddenFromLength !== 0) {
321
+ hiddenFrom = [];
322
+ for (let i = 0; i < hiddenFromLength; i++) {
323
+ hiddenFrom.push(buffer.readUVarint());
324
+ }
325
+ }
326
+ const childrenLength = buffer.readUVarint();
327
+ const children = [];
328
+ for (let i = 0; i < childrenLength; i++) {
329
+ children.push(decodeNodeDescription(buffer));
330
+ }
331
+ const node = {
332
+ type: "element",
333
+ nodeId,
334
+ tag,
335
+ attributes,
336
+ children
337
+ };
338
+ if (visibleTo) {
339
+ node.visibleTo = visibleTo;
340
+ }
341
+ if (hiddenFrom) {
342
+ node.hiddenFrom = hiddenFrom;
343
+ }
344
+ return node;
345
+ }
346
+
347
+ // src/networked-dom-v0.2/constants.ts
348
+ var networkedDOMProtocolSubProtocol_v0_2 = "networked-dom-v0.2";
349
+
350
+ // src/networked-dom-v0.2/messageTypes.ts
351
+ var SnapshotMessageType = 1;
352
+ var BatchStartMessageType = 2;
353
+ var DocumentTimeMessageType = 3;
354
+ var ChildrenAddedMessageType = 4;
355
+ var ChildrenRemovedMessageType = 5;
356
+ var AttributesChangedMessageType = 6;
357
+ var ChangeVisibleToMessageType = 7;
358
+ var ChangeHiddenFromMessageType = 8;
359
+ var TextChangedMessageType = 9;
360
+ var BatchEndMessageType = 10;
361
+ var PingMessageType = 11;
362
+ var WarningMessageType = 12;
363
+ var ErrorMessageType = 13;
364
+ var ConnectUsersMessageType = 14;
365
+ var DisconnectUsersMessageType = 15;
366
+ var EventMessageType = 16;
367
+ var PongMessageType = 17;
368
+
369
+ // src/networked-dom-v0.2/messages/from-client/connectUsers.ts
370
+ function encodeConnectUsers(connectUsersMessage, writer) {
371
+ const connectionIdsLength = connectUsersMessage.connectionIds.length;
372
+ writer.writeUint8(ConnectUsersMessageType);
373
+ writer.writeUVarint(connectionIdsLength);
374
+ for (let i = 0; i < connectionIdsLength; i++) {
375
+ writer.writeUVarint(connectUsersMessage.connectionIds[i]);
376
+ }
377
+ }
378
+ function decodeConnectUsers(buffer) {
379
+ const connectionIds = [];
380
+ const connectionIdsLength = buffer.readUVarint();
381
+ for (let i = 0; i < connectionIdsLength; i++) {
382
+ connectionIds.push(buffer.readUVarint());
383
+ }
384
+ return {
385
+ type: "connectUsers",
386
+ connectionIds
387
+ };
388
+ }
389
+
390
+ // src/networked-dom-v0.2/messages/from-client/disconnectUsers.ts
391
+ function encodeDisconnectUsers(disconnectUsersMessage, writer) {
392
+ const connectionIdsLength = disconnectUsersMessage.connectionIds.length;
393
+ writer.writeUint8(DisconnectUsersMessageType);
394
+ writer.writeUVarint(connectionIdsLength);
395
+ for (let i = 0; i < connectionIdsLength; i++) {
396
+ writer.writeUVarint(disconnectUsersMessage.connectionIds[i]);
397
+ }
398
+ }
399
+ function decodeDisconnectUsers(buffer) {
400
+ const connectionIds = [];
401
+ const connectionIdsLength = buffer.readUVarint();
402
+ for (let i = 0; i < connectionIdsLength; i++) {
403
+ connectionIds.push(buffer.readUVarint());
404
+ }
405
+ return {
406
+ type: "disconnectUsers",
407
+ connectionIds
408
+ };
409
+ }
410
+
411
+ // src/networked-dom-v0.2/messages/from-client/event.ts
412
+ function encodeEvent(event, writer) {
413
+ writer.writeUint8(EventMessageType);
414
+ writer.writeUVarint(event.nodeId);
415
+ writer.writeUVarint(event.connectionId);
416
+ writer.writeLengthPrefixedString(event.name);
417
+ writer.writeBoolean(event.bubbles);
418
+ writer.writeLengthPrefixedString(JSON.stringify(event.params));
419
+ }
420
+ function decodeEvent(buffer) {
421
+ const nodeId = buffer.readUVarint();
422
+ const connectionId = buffer.readUVarint();
423
+ const name = buffer.readUVarintPrefixedString();
424
+ const bubbles = buffer.readBoolean();
425
+ const paramsJSONString = buffer.readUVarintPrefixedString();
426
+ const params = JSON.parse(paramsJSONString);
427
+ return {
428
+ type: "event",
429
+ nodeId,
430
+ connectionId,
431
+ name,
432
+ bubbles,
433
+ params
434
+ };
435
+ }
436
+
437
+ // src/networked-dom-v0.2/messages/from-client/pong.ts
438
+ function encodePong(pongMessage, writer) {
439
+ writer.writeUint8(PongMessageType);
440
+ writer.writeUVarint(pongMessage.pong);
441
+ }
442
+ function decodePong(buffer) {
443
+ const pong = buffer.readUVarint();
444
+ return {
445
+ type: "pong",
446
+ pong
447
+ };
448
+ }
449
+
450
+ // src/networked-dom-v0.2/decodeClientMessages.ts
451
+ function decodeClientMessages(buffer) {
452
+ const messages = [];
453
+ while (!buffer.isEnd()) {
454
+ const messageType = buffer.readUInt8();
455
+ switch (messageType) {
456
+ case ConnectUsersMessageType:
457
+ messages.push(decodeConnectUsers(buffer));
458
+ break;
459
+ case DisconnectUsersMessageType:
460
+ messages.push(decodeDisconnectUsers(buffer));
461
+ break;
462
+ case EventMessageType:
463
+ messages.push(decodeEvent(buffer));
464
+ break;
465
+ case PongMessageType:
466
+ messages.push(decodePong(buffer));
467
+ break;
468
+ default:
469
+ throw new Error(`Unknown message type: ${messageType}`);
470
+ }
471
+ }
472
+ return messages;
473
+ }
474
+
475
+ // src/networked-dom-v0.2/messages/from-server/attributesChanged.ts
476
+ function encodeAttributesChanged(msg, writer = new BufferWriter(64)) {
477
+ writer.writeUint8(AttributesChangedMessageType);
478
+ writer.writeUVarint(msg.nodeId);
479
+ encodeAttributes(writer, msg.attributes);
480
+ return writer;
481
+ }
482
+ function decodeAttributesChanged(buffer) {
483
+ const nodeId = buffer.readUVarint();
484
+ const attributes = decodeAttributes(buffer);
485
+ return {
486
+ type: "attributesChanged",
487
+ nodeId,
488
+ attributes
489
+ };
490
+ }
491
+
492
+ // src/networked-dom-v0.2/messages/from-server/batchEnd.ts
493
+ function encodeBatchEnd(writer = new BufferWriter(1)) {
494
+ writer.writeUint8(BatchEndMessageType);
495
+ return writer;
496
+ }
497
+ var batchEndMessage = {
498
+ type: "batchEnd"
499
+ };
500
+
501
+ // src/networked-dom-v0.2/messages/from-server/batchStart.ts
502
+ function encodeBatchStart(writer = new BufferWriter(1)) {
503
+ writer.writeUint8(BatchStartMessageType);
504
+ return writer;
505
+ }
506
+ var batchStartMessage = {
507
+ type: "batchStart"
508
+ };
509
+
510
+ // src/networked-dom-v0.2/messages/from-server/changeHiddenFrom.ts
511
+ function encodeChangeHiddenFrom(msg, writer = new BufferWriter(64)) {
512
+ writer.writeUint8(ChangeHiddenFromMessageType);
513
+ writer.writeUVarint(msg.nodeId);
514
+ if (msg.addHiddenFrom) {
515
+ writer.writeUVarint(msg.addHiddenFrom.length);
516
+ for (const key of msg.addHiddenFrom) {
517
+ writer.writeUVarint(key);
518
+ }
519
+ } else {
520
+ writer.writeUVarint(0);
521
+ }
522
+ if (msg.removeHiddenFrom) {
523
+ writer.writeUVarint(msg.removeHiddenFrom.length);
524
+ for (const key of msg.removeHiddenFrom) {
525
+ writer.writeUVarint(key);
526
+ }
527
+ } else {
528
+ writer.writeUVarint(0);
529
+ }
530
+ return writer;
531
+ }
532
+ function decodeChangeHiddenFrom(buffer) {
533
+ const nodeId = buffer.readUVarint();
534
+ const addHiddenFromLength = buffer.readUVarint();
535
+ const addHiddenFrom = [];
536
+ for (let i = 0; i < addHiddenFromLength; i++) {
537
+ addHiddenFrom.push(buffer.readUVarint());
538
+ }
539
+ const removeHiddenFromLength = buffer.readUVarint();
540
+ const removeHiddenFrom = [];
541
+ for (let i = 0; i < removeHiddenFromLength; i++) {
542
+ removeHiddenFrom.push(buffer.readUVarint());
543
+ }
544
+ return {
545
+ type: "changeHiddenFrom",
546
+ nodeId,
547
+ addHiddenFrom,
548
+ removeHiddenFrom
549
+ };
550
+ }
551
+
552
+ // src/networked-dom-v0.2/messages/from-server/changeVisibleTo.ts
553
+ function encodeChangeVisibleTo(msg, writer = new BufferWriter(64)) {
554
+ writer.writeUint8(ChangeVisibleToMessageType);
555
+ writer.writeUVarint(msg.nodeId);
556
+ if (msg.addVisibleTo) {
557
+ writer.writeUVarint(msg.addVisibleTo.length);
558
+ for (const key of msg.addVisibleTo) {
559
+ writer.writeUVarint(key);
560
+ }
561
+ } else {
562
+ writer.writeUVarint(0);
563
+ }
564
+ if (msg.removeVisibleTo) {
565
+ writer.writeUVarint(msg.removeVisibleTo.length);
566
+ for (const key of msg.removeVisibleTo) {
567
+ writer.writeUVarint(key);
568
+ }
569
+ } else {
570
+ writer.writeUVarint(0);
571
+ }
572
+ return writer;
573
+ }
574
+ function decodeChangeVisibleTo(buffer) {
575
+ const nodeId = buffer.readUVarint();
576
+ const addVisibleToLength = buffer.readUVarint();
577
+ const addVisibleTo = [];
578
+ for (let i = 0; i < addVisibleToLength; i++) {
579
+ addVisibleTo.push(buffer.readUVarint());
580
+ }
581
+ const removeVisibleToLength = buffer.readUVarint();
582
+ const removeVisibleTo = [];
583
+ for (let i = 0; i < removeVisibleToLength; i++) {
584
+ removeVisibleTo.push(buffer.readUVarint());
585
+ }
586
+ return {
587
+ type: "changeVisibleTo",
588
+ nodeId,
589
+ addVisibleTo,
590
+ removeVisibleTo
591
+ };
592
+ }
593
+
594
+ // src/networked-dom-v0.2/messages/from-server/childrenAdded.ts
595
+ function encodeChildrenAdded(msg, writer = new BufferWriter(64)) {
596
+ writer.writeUint8(ChildrenAddedMessageType);
597
+ writer.writeUVarint(msg.nodeId);
598
+ writer.writeUVarint(msg.previousNodeId ?? 0);
599
+ writer.writeUVarint(msg.addedNodes.length);
600
+ for (let i = 0; i < msg.addedNodes.length; i++) {
601
+ encodeNodeDescription(writer, msg.addedNodes[i]);
602
+ }
603
+ return writer;
604
+ }
605
+ function decodeChildrenAdded(buffer) {
606
+ const nodeId = buffer.readUVarint();
607
+ const previousNodeId = buffer.readUVarint();
608
+ const childrenLength = buffer.readUVarint();
609
+ const children = [];
610
+ for (let i = 0; i < childrenLength; i++) {
611
+ children.push(decodeNodeDescription(buffer));
612
+ }
613
+ return {
614
+ type: "childrenAdded",
615
+ nodeId,
616
+ previousNodeId: previousNodeId === 0 ? null : previousNodeId,
617
+ addedNodes: children
618
+ };
619
+ }
620
+
621
+ // src/networked-dom-v0.2/messages/from-server/childrenRemoved.ts
622
+ function encodeChildrenRemoved(msg, writer = new BufferWriter(64)) {
623
+ writer.writeUint8(ChildrenRemovedMessageType);
624
+ writer.writeUVarint(msg.nodeId);
625
+ writer.writeUVarint(msg.removedNodes.length);
626
+ for (const nodeId of msg.removedNodes) {
627
+ writer.writeUVarint(nodeId);
628
+ }
629
+ return writer;
630
+ }
631
+ function decodeChildrenRemoved(buffer) {
632
+ const nodeId = buffer.readUVarint();
633
+ const removedNodesLength = buffer.readUVarint();
634
+ const removedNodes = [];
635
+ for (let i = 0; i < removedNodesLength; i++) {
636
+ removedNodes.push(buffer.readUVarint());
637
+ }
638
+ return {
639
+ type: "childrenRemoved",
640
+ nodeId,
641
+ removedNodes
642
+ };
643
+ }
644
+
645
+ // src/networked-dom-v0.2/messages/from-server/documentTime.ts
646
+ function encodeDocumentTime(msg, writer = new BufferWriter(8)) {
647
+ writer.writeUint8(DocumentTimeMessageType);
648
+ writer.writeUVarint(msg.documentTime);
649
+ return writer;
650
+ }
651
+ function decodeDocumentTime(buffer) {
652
+ return {
653
+ type: "documentTime",
654
+ documentTime: buffer.readUVarint()
655
+ };
656
+ }
657
+
658
+ // src/networked-dom-v0.2/messages/from-server/error.ts
659
+ function encodeError(msg, writer = new BufferWriter(64)) {
660
+ writer.writeUint8(ErrorMessageType);
661
+ writer.writeLengthPrefixedString(msg.message);
662
+ return writer;
663
+ }
664
+ function decodeError(buffer) {
665
+ const message = buffer.readUVarintPrefixedString();
666
+ return {
667
+ type: "error",
668
+ message
669
+ };
670
+ }
671
+
672
+ // src/networked-dom-v0.2/messages/from-server/ping.ts
673
+ function encodePing(pingMessage, writer = new BufferWriter(8)) {
674
+ writer.writeUint8(PingMessageType);
675
+ writer.writeUVarint(pingMessage.ping);
676
+ writer.writeUVarint(pingMessage.documentTime);
677
+ return writer;
678
+ }
679
+ function decodePing(buffer) {
680
+ const ping = buffer.readUVarint();
681
+ const documentTime = buffer.readUVarint();
682
+ return {
683
+ type: "ping",
684
+ ping,
685
+ documentTime
686
+ };
687
+ }
688
+
689
+ // src/networked-dom-v0.2/messages/from-server/snapshot.ts
690
+ function encodeSnapshot(msg, writer = new BufferWriter(64)) {
691
+ writer.writeUint8(SnapshotMessageType);
692
+ encodeNodeDescription(writer, msg.snapshot);
693
+ writer.writeUVarint(msg.documentTime);
694
+ return writer;
695
+ }
696
+ function decodeSnapshot(buffer) {
697
+ return {
698
+ type: "snapshot",
699
+ snapshot: decodeNodeDescription(buffer),
700
+ documentTime: buffer.readUVarint()
701
+ };
702
+ }
703
+
704
+ // src/networked-dom-v0.2/messages/from-server/textChanged.ts
705
+ function encodeTextChanged(msg, writer = new BufferWriter(64)) {
706
+ writer.writeUint8(TextChangedMessageType);
707
+ writer.writeUVarint(msg.nodeId);
708
+ writer.writeLengthPrefixedString(msg.text);
709
+ return writer;
710
+ }
711
+ function decodeTextChanged(buffer) {
712
+ const nodeId = buffer.readUVarint();
713
+ const text = buffer.readUVarintPrefixedString();
714
+ return {
715
+ type: "textChanged",
716
+ nodeId,
717
+ text
718
+ };
719
+ }
720
+
721
+ // src/networked-dom-v0.2/messages/from-server/warning.ts
722
+ function encodeWarning(msg, writer = new BufferWriter(64)) {
723
+ writer.writeUint8(WarningMessageType);
724
+ writer.writeLengthPrefixedString(msg.message);
725
+ return writer;
726
+ }
727
+ function decodeWarning(buffer) {
728
+ const message = buffer.readUVarintPrefixedString();
729
+ return {
730
+ type: "warning",
731
+ message
732
+ };
733
+ }
734
+
735
+ // src/networked-dom-v0.2/decodeServerMessages.ts
736
+ function decodeServerMessages(buffer) {
737
+ const messages = [];
738
+ while (!buffer.isEnd()) {
739
+ const messageType = buffer.readUInt8();
740
+ switch (messageType) {
741
+ case SnapshotMessageType:
742
+ messages.push(decodeSnapshot(buffer));
743
+ break;
744
+ case DocumentTimeMessageType:
745
+ messages.push(decodeDocumentTime(buffer));
746
+ break;
747
+ case ChildrenAddedMessageType:
748
+ messages.push(decodeChildrenAdded(buffer));
749
+ break;
750
+ case ChildrenRemovedMessageType:
751
+ messages.push(decodeChildrenRemoved(buffer));
752
+ break;
753
+ case AttributesChangedMessageType:
754
+ messages.push(decodeAttributesChanged(buffer));
755
+ break;
756
+ case TextChangedMessageType:
757
+ messages.push(decodeTextChanged(buffer));
758
+ break;
759
+ case ChangeVisibleToMessageType:
760
+ messages.push(decodeChangeVisibleTo(buffer));
761
+ break;
762
+ case ChangeHiddenFromMessageType:
763
+ messages.push(decodeChangeHiddenFrom(buffer));
764
+ break;
765
+ case BatchStartMessageType:
766
+ messages.push(batchStartMessage);
767
+ break;
768
+ case BatchEndMessageType:
769
+ messages.push(batchEndMessage);
770
+ break;
771
+ case PingMessageType:
772
+ messages.push(decodePing(buffer));
773
+ break;
774
+ case WarningMessageType:
775
+ messages.push(decodeWarning(buffer));
776
+ break;
777
+ case ErrorMessageType:
778
+ messages.push(decodeError(buffer));
779
+ break;
780
+ default:
781
+ throw new Error(`Unknown message type: ${messageType}`);
782
+ }
783
+ }
784
+ return messages;
785
+ }
786
+
787
+ // src/networked-dom-v0.2/encodeClientMessage.ts
788
+ function encodeClientMessage(message, writer) {
789
+ const type = message.type;
790
+ switch (type) {
791
+ case "connectUsers":
792
+ return encodeConnectUsers(message, writer);
793
+ case "disconnectUsers":
794
+ return encodeDisconnectUsers(message, writer);
795
+ case "event":
796
+ return encodeEvent(message, writer);
797
+ case "pong":
798
+ return encodePong(message, writer);
799
+ default:
800
+ throw new Error(`Unknown message type: ${type}`);
801
+ }
802
+ }
803
+
804
+ // src/networked-dom-v0.2/encodeServerMessage.ts
805
+ function encodeServerMessage(message, writer) {
806
+ switch (message.type) {
807
+ case "snapshot":
808
+ return encodeSnapshot(message, writer);
809
+ case "documentTime":
810
+ return encodeDocumentTime(message, writer);
811
+ case "childrenAdded":
812
+ return encodeChildrenAdded(message, writer);
813
+ case "childrenRemoved":
814
+ return encodeChildrenRemoved(message, writer);
815
+ case "attributesChanged":
816
+ return encodeAttributesChanged(message, writer);
817
+ case "textChanged":
818
+ return encodeTextChanged(message, writer);
819
+ case "changeVisibleTo":
820
+ return encodeChangeVisibleTo(message, writer);
821
+ case "changeHiddenFrom":
822
+ return encodeChangeHiddenFrom(message, writer);
823
+ case "batchStart":
824
+ return encodeBatchStart(writer);
825
+ case "batchEnd":
826
+ return encodeBatchEnd(writer);
827
+ case "ping":
828
+ return encodePing(message, writer);
829
+ case "warning":
830
+ return encodeWarning(message, writer);
831
+ case "error":
832
+ return encodeError(message, writer);
833
+ default:
834
+ throw new Error(`Unknown message type: ${message.type}`);
835
+ }
836
+ }
837
+ export {
838
+ AttributesChangedMessageType,
839
+ BatchEndMessageType,
840
+ BatchStartMessageType,
841
+ BufferReader,
842
+ BufferWriter,
843
+ ChangeHiddenFromMessageType,
844
+ ChangeVisibleToMessageType,
845
+ ChildrenAddedMessageType,
846
+ ChildrenRemovedMessageType,
847
+ ConnectUsersMessageType,
848
+ DisconnectUsersMessageType,
849
+ DocumentTimeMessageType,
850
+ ErrorMessageType,
851
+ EventMessageType,
852
+ PingMessageType,
853
+ PongMessageType,
854
+ SnapshotMessageType,
855
+ TextChangedMessageType,
856
+ WarningMessageType,
857
+ batchEndMessage,
858
+ batchStartMessage,
859
+ decodeAttributes,
860
+ decodeAttributesChanged,
861
+ decodeChangeHiddenFrom,
862
+ decodeChangeVisibleTo,
863
+ decodeChildrenAdded,
864
+ decodeChildrenRemoved,
865
+ decodeClientMessages,
866
+ decodeConnectUsers,
867
+ decodeDisconnectUsers,
868
+ decodeDocumentTime,
869
+ decodeError,
870
+ decodeEvent,
871
+ decodeNodeDescription,
872
+ decodePing,
873
+ decodePong,
874
+ decodeServerMessages,
875
+ decodeSnapshot,
876
+ decodeTextChanged,
877
+ decodeWarning,
878
+ encodeAttribute,
879
+ encodeAttributes,
880
+ encodeAttributesChanged,
881
+ encodeBatchEnd,
882
+ encodeBatchStart,
883
+ encodeChangeHiddenFrom,
884
+ encodeChangeVisibleTo,
885
+ encodeChildrenAdded,
886
+ encodeChildrenRemoved,
887
+ encodeClientMessage,
888
+ encodeConnectUsers,
889
+ encodeDisconnectUsers,
890
+ encodeDocumentTime,
891
+ encodeError,
892
+ encodeEvent,
893
+ encodeNodeDescription,
894
+ encodePing,
895
+ encodePong,
896
+ encodeServerMessage,
897
+ encodeSnapshot,
898
+ encodeTextChanged,
899
+ encodeWarning,
900
+ networkedDOMProtocolSubProtocol_v0_1,
901
+ networkedDOMProtocolSubProtocol_v0_2
902
+ };
1
903
  //# sourceMappingURL=index.js.map