@crowdedkingdoms/crowdyjs 15.4.2 → 15.5.0-dev.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.
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Webcam video fragments: the SDK-side half of `CLIENT_VIDEO_PACKET_2` (143).
3
+ *
4
+ * A Buddy datagram carries at most 1232 bytes, and a long-spatial payload at most
5
+ * ~1123 of them (1117 once the HMAC tail is counted). Even a 64×64 JPEG is 2–6 KB,
6
+ * so a frame crosses as several packets. The server never looks inside a video
7
+ * payload; THIS is the contract both SDKs implement, byte for byte
8
+ * (published under "Wire formats" on docs.crowdedkingdoms.com):
9
+ *
10
+ * ```
11
+ * offset size field meaning
12
+ * 0 1 version 0x01. Anything else: drop the fragment.
13
+ * 1 1 codec 0 = JPEG, 1 = WebP. Others reserved; drop.
14
+ * 2 2 frameId uint16 big-endian, per sender, +1 per frame, wraps.
15
+ * 4 1 fragIndex 0-based index of this fragment within the frame.
16
+ * 5 1 fragCount total fragments in the frame, 1..16.
17
+ * 6 ... body this fragment's slice of the encoded frame.
18
+ * ```
19
+ *
20
+ * Reassembly is per `(sender uuid, frameId)`: a frame is delivered once when every
21
+ * index has arrived; an incomplete frame is dropped when a NEWER frameId from the
22
+ * same sender arrives, or after {@link VIDEO_FRAME_TIMEOUT_MS} without progress. No
23
+ * retransmit, no NACK — the next frame is the recovery. Pure functions and a small
24
+ * class with no DOM dependency, so the same fixtures run here and in CrowdyCPP.
25
+ */
26
+ /** Bytes of fragment header in front of every body slice. */
27
+ export const VIDEO_FRAGMENT_HEADER_BYTES = 6;
28
+ /** Largest body a fragment may carry with the HMAC tail present (1123 − 6). */
29
+ export const MAX_VIDEO_FRAGMENT_BODY_BYTES = 1117;
30
+ /** A frame is refused above this many fragments (~17.8 KB). */
31
+ export const MAX_VIDEO_FRAGMENTS = 16;
32
+ /** An incomplete frame is abandoned after this long without a new fragment. */
33
+ export const VIDEO_FRAME_TIMEOUT_MS = 500;
34
+ /** The one header version this SDK writes and accepts. */
35
+ export const VIDEO_FRAGMENT_VERSION = 1;
36
+ /** Frame codecs the header can name. */
37
+ export const VideoCodec = {
38
+ JPEG: 0,
39
+ WEBP: 1,
40
+ };
41
+ /**
42
+ * Split one encoded frame into fragments, each `header || slice`.
43
+ *
44
+ * @param frame - the encoded frame bytes (a JPEG or WebP file as `Uint8Array`).
45
+ * @param frameId - per-sender counter, `0..65535`; wraps by the caller.
46
+ * @param codec - {@link VideoCodec}.
47
+ * @param maxBody - bytes per fragment body; defaults to the wire maximum.
48
+ * @throws {RangeError} when the frame would need more than {@link MAX_VIDEO_FRAGMENTS}
49
+ * fragments (send a smaller frame; a partial frame is never sent), when `frameId`
50
+ * is out of range, or when `frame` is empty.
51
+ */
52
+ export function fragmentFrame(frame, frameId, codec = VideoCodec.JPEG, maxBody = MAX_VIDEO_FRAGMENT_BODY_BYTES) {
53
+ if (frame.length === 0)
54
+ throw new RangeError('video frame is empty');
55
+ if (!Number.isInteger(frameId) || frameId < 0 || frameId > 0xffff) {
56
+ throw new RangeError(`frameId must be 0..65535, got ${frameId}`);
57
+ }
58
+ if (!Number.isInteger(maxBody) || maxBody < 1 || maxBody > MAX_VIDEO_FRAGMENT_BODY_BYTES) {
59
+ throw new RangeError(`maxBody must be 1..${MAX_VIDEO_FRAGMENT_BODY_BYTES}, got ${maxBody}`);
60
+ }
61
+ const fragCount = Math.ceil(frame.length / maxBody);
62
+ if (fragCount > MAX_VIDEO_FRAGMENTS) {
63
+ throw new RangeError(`video frame of ${frame.length} bytes needs ${fragCount} fragments; the ceiling is ${MAX_VIDEO_FRAGMENTS} (${MAX_VIDEO_FRAGMENTS * maxBody} bytes)`);
64
+ }
65
+ const out = [];
66
+ for (let i = 0; i < fragCount; i += 1) {
67
+ const slice = frame.subarray(i * maxBody, Math.min(frame.length, (i + 1) * maxBody));
68
+ const packet = new Uint8Array(VIDEO_FRAGMENT_HEADER_BYTES + slice.length);
69
+ packet[0] = VIDEO_FRAGMENT_VERSION;
70
+ packet[1] = codec;
71
+ packet[2] = (frameId >> 8) & 0xff;
72
+ packet[3] = frameId & 0xff;
73
+ packet[4] = i;
74
+ packet[5] = fragCount;
75
+ packet.set(slice, VIDEO_FRAGMENT_HEADER_BYTES);
76
+ out.push(packet);
77
+ }
78
+ return out;
79
+ }
80
+ /**
81
+ * Parse a fragment header. Returns `null` for anything this SDK must drop: too
82
+ * short, wrong version, reserved codec, `fragCount` outside `1..16`, or an index at
83
+ * or past the count.
84
+ */
85
+ export function parseVideoFragmentHeader(packet) {
86
+ if (packet.length < VIDEO_FRAGMENT_HEADER_BYTES)
87
+ return null;
88
+ const version = packet[0];
89
+ const codec = packet[1];
90
+ const frameId = (packet[2] << 8) | packet[3];
91
+ const fragIndex = packet[4];
92
+ const fragCount = packet[5];
93
+ if (version !== VIDEO_FRAGMENT_VERSION)
94
+ return null;
95
+ if (codec !== VideoCodec.JPEG && codec !== VideoCodec.WEBP)
96
+ return null;
97
+ if (fragCount < 1 || fragCount > MAX_VIDEO_FRAGMENTS)
98
+ return null;
99
+ if (fragIndex >= fragCount)
100
+ return null;
101
+ return { version, codec, frameId, fragIndex, fragCount };
102
+ }
103
+ /** True when `a` is newer than `b` on the wrapping uint16 frameId counter. */
104
+ export function isNewerFrameId(a, b) {
105
+ return ((a - b) & 0xffff) !== 0 && ((a - b) & 0xffff) < 0x8000;
106
+ }
107
+ /**
108
+ * Reassembles fragments per sender. Feed every `ClientVideoNotification`'s
109
+ * decoded `videoData` to {@link ingest}; call {@link prune} on a timer (or rely on
110
+ * the newer-frame rule alone) and {@link forget} when a sender leaves.
111
+ */
112
+ export class VideoFrameAssembler {
113
+ constructor(timeoutMs = VIDEO_FRAME_TIMEOUT_MS) {
114
+ this.timeoutMs = timeoutMs;
115
+ this.pending = new Map();
116
+ /** The newest frameId per sender that was completed or abandoned; older ones are stragglers. */
117
+ this.lastDone = new Map();
118
+ /** Fragments dropped for a malformed header or a stale frameId. */
119
+ this.dropped = 0;
120
+ /** Frames abandoned incomplete (newer frame arrived, timeout, or forget). */
121
+ this.abandoned = 0;
122
+ }
123
+ /**
124
+ * Add one fragment. Returns the completed frame when this fragment finished it,
125
+ * otherwise `null`.
126
+ */
127
+ ingest(uuid, packet, nowMs = Date.now()) {
128
+ const header = parseVideoFragmentHeader(packet);
129
+ if (!header) {
130
+ this.dropped += 1;
131
+ return null;
132
+ }
133
+ let frame = this.pending.get(uuid);
134
+ if (!frame) {
135
+ const done = this.lastDone.get(uuid);
136
+ if (done !== undefined && !isNewerFrameId(header.frameId, done)) {
137
+ // A straggler from a frame already completed or abandoned.
138
+ this.dropped += 1;
139
+ return null;
140
+ }
141
+ }
142
+ if (frame && frame.frameId !== header.frameId) {
143
+ if (isNewerFrameId(header.frameId, frame.frameId)) {
144
+ // The sender has moved on; whatever we had of the old frame will never complete.
145
+ this.abandoned += 1;
146
+ this.lastDone.set(uuid, frame.frameId);
147
+ this.pending.delete(uuid);
148
+ frame = undefined;
149
+ }
150
+ else {
151
+ // A straggler from a frame we already completed or abandoned.
152
+ this.dropped += 1;
153
+ return null;
154
+ }
155
+ }
156
+ if (frame && (frame.fragCount !== header.fragCount || frame.codec !== header.codec)) {
157
+ // Same frameId, different shape: corrupt or a very fast wrap. Start over.
158
+ this.abandoned += 1;
159
+ frame = undefined;
160
+ }
161
+ if (!frame) {
162
+ frame = {
163
+ frameId: header.frameId,
164
+ codec: header.codec,
165
+ fragCount: header.fragCount,
166
+ parts: new Array(header.fragCount),
167
+ received: 0,
168
+ lastAt: nowMs,
169
+ };
170
+ this.pending.set(uuid, frame);
171
+ }
172
+ if (frame.parts[header.fragIndex] === undefined) {
173
+ frame.parts[header.fragIndex] = packet.subarray(VIDEO_FRAGMENT_HEADER_BYTES);
174
+ frame.received += 1;
175
+ }
176
+ frame.lastAt = nowMs;
177
+ if (frame.received < frame.fragCount)
178
+ return null;
179
+ this.pending.delete(uuid);
180
+ this.lastDone.set(uuid, frame.frameId);
181
+ let total = 0;
182
+ for (const part of frame.parts)
183
+ total += part.length;
184
+ const bytes = new Uint8Array(total);
185
+ let off = 0;
186
+ for (const part of frame.parts) {
187
+ bytes.set(part, off);
188
+ off += part.length;
189
+ }
190
+ return { uuid, frameId: frame.frameId, codec: frame.codec, bytes, completedAt: nowMs };
191
+ }
192
+ /** Abandon frames that have not progressed within the timeout. Returns how many. */
193
+ prune(nowMs = Date.now()) {
194
+ let n = 0;
195
+ for (const [uuid, frame] of this.pending) {
196
+ if (nowMs - frame.lastAt > this.timeoutMs) {
197
+ this.pending.delete(uuid);
198
+ this.lastDone.set(uuid, frame.frameId);
199
+ this.abandoned += 1;
200
+ n += 1;
201
+ }
202
+ }
203
+ return n;
204
+ }
205
+ /** Drop any partial frame for a sender that left. */
206
+ forget(uuid) {
207
+ if (this.pending.delete(uuid))
208
+ this.abandoned += 1;
209
+ this.lastDone.delete(uuid);
210
+ }
211
+ /** Senders with a frame in progress. */
212
+ get pendingCount() {
213
+ return this.pending.size;
214
+ }
215
+ }
package/dist/metrics.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Exposed as `client.metrics`; call {@link RealtimeMetrics.snapshot} from a
8
8
  * HUD/diagnostics loop. Byte counts measure the app-defined **payload** field
9
- * of each message (`state` / `audioData` / `text` / `payload` / `voxelState`),
9
+ * of each message (`state` / `audioData` / `videoData` / `text` / `payload` / `voxelState`),
10
10
  * not wire framing or GraphQL envelope overhead.
11
11
  */
12
12
  /** Counter pair tracked per direction and per message kind. */
package/dist/metrics.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Exposed as `client.metrics`; call {@link RealtimeMetrics.snapshot} from a
8
8
  * HUD/diagnostics loop. Byte counts measure the app-defined **payload** field
9
- * of each message (`state` / `audioData` / `text` / `payload` / `voxelState`),
9
+ * of each message (`state` / `audioData` / `videoData` / `text` / `payload` / `voxelState`),
10
10
  * not wire framing or GraphQL envelope overhead.
11
11
  */
12
12
  const WINDOW_SECONDS = 10;
@@ -149,7 +149,7 @@ export class RealtimeMetrics {
149
149
  * approximated by its UTF-16 length.
150
150
  */
151
151
  export function payloadBytesOf(record) {
152
- for (const key of ['state', 'audioData', 'text', 'payload', 'voxelState']) {
152
+ for (const key of ['state', 'audioData', 'videoData', 'text', 'payload', 'voxelState']) {
153
153
  const value = record[key];
154
154
  if (typeof value === 'string')
155
155
  return value.length;
@@ -100,6 +100,22 @@ export interface UdpNotificationHandlers {
100
100
  __typename?: 'ClientAudioNotification';
101
101
  }>) => void;
102
102
  /** A nearby client sent a text/chat message (`text` is UTF-8). */
103
+ /**
104
+ * A nearby client sent one webcam video FRAGMENT; `videoData` is base64 of a
105
+ * 6-byte fragment header plus a slice of the encoded frame. Feed the decoded
106
+ * bytes to a `VideoFrameAssembler` (see `media/video-frames.ts`) to get frames.
107
+ */
108
+ video?: (notification: Extract<UdpNotification, {
109
+ __typename?: 'ClientVideoNotification';
110
+ }>) => void;
111
+ /**
112
+ * The server stopped considering an actor present (about five seconds after
113
+ * its last update; never for a mere server migration). Emitted once. A later
114
+ * `actorUpdate` for the same uuid is a rejoin.
115
+ */
116
+ actorLeft?: (notification: Extract<UdpNotification, {
117
+ __typename?: 'ActorLeftNotification';
118
+ }>) => void;
103
119
  text?: (notification: Extract<UdpNotification, {
104
120
  __typename?: 'ClientTextNotification';
105
121
  }>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
package/dist/realtime.js CHANGED
@@ -766,6 +766,12 @@ export class RealtimeClient {
766
766
  case 'ClientAudioNotification':
767
767
  handlers.audio?.(notification);
768
768
  break;
769
+ case 'ClientVideoNotification':
770
+ handlers.video?.(notification);
771
+ break;
772
+ case 'ActorLeftNotification':
773
+ handlers.actorLeft?.(notification);
774
+ break;
769
775
  case 'ClientTextNotification':
770
776
  handlers.text?.(notification);
771
777
  break;
@@ -856,6 +862,8 @@ const NOTIFICATION_KINDS = {
856
862
  VoxelUpdateNotification: 'voxelUpdate',
857
863
  VoxelUpdateResponse: 'voxelUpdateResponse',
858
864
  ClientAudioNotification: 'audio',
865
+ ClientVideoNotification: 'video',
866
+ ActorLeftNotification: 'actorLeft',
859
867
  ClientTextNotification: 'text',
860
868
  ClientEventNotification: 'clientEvent',
861
869
  ServerEventNotification: 'serverEvent',
@@ -260,6 +260,15 @@ export declare class RemoteActorLane<T> {
260
260
  onLeave(listener: (actor: RemoteActor<T>) => void): () => void;
261
261
  /** Apply one decoded update (internal). */
262
262
  apply(uuid: string, state: T, chunk: ChunkCoordinatesInput, distance: number, epochMillis: number): void;
263
+ /**
264
+ * The server said this actor is gone (`ActorLeftNotification`, Buddy v0.25.0):
265
+ * drop it now and fire `onLeave` once. A no-op for a uuid this lane does not
266
+ * hold, so a leave that arrives after the reaper already acted, or for a lane
267
+ * the actor never matched, fires nothing twice. A later `actorUpdate` for the
268
+ * same uuid re-adds it and fires `onJoin` again -- a rejoin, per the contract.
269
+ * @returns whether an actor was removed.
270
+ */
271
+ remove(uuid: string): boolean;
263
272
  /** Physically delete stale records, firing `onLeave` for each. */
264
273
  reap(): void;
265
274
  /** Drop every record (fires `onLeave` for each live one). */
@@ -303,6 +312,12 @@ export declare class RemoteActorStore<T> {
303
312
  /** An actor was reaped. */
304
313
  onLeave(listener: (actor: RemoteActor<T>) => void): () => void;
305
314
  /** Physically delete stale records in every lane. */
315
+ /**
316
+ * Remove one actor from whichever lane holds it, firing that lane's `onLeave`.
317
+ * Wired to `actorLeft` automatically; public so a game can force a departure
318
+ * (e.g. on its own disconnect signal). @returns whether an actor was removed.
319
+ */
320
+ remove(uuid: string): boolean;
306
321
  reap(): void;
307
322
  /** Drop every record in every lane. */
308
323
  clear(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../../src/stores/actors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../../src/stores/actors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GAAG,UAAU,CACtC,WAAW,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CACpD,CAAC,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC,WAAW,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CACrD,CAAC,CAAC,CAAC,CAAC;AAML,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,SAAS,CAQ3C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,SAAwB,GAAG,SAAS,CAmB5E;AAMD,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,SAAS,CAAC;AAEd,2DAA2D;AAC3D,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,qCAAqC;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,6CAA6C;IAC7C,KAAK,EAAE,CAAC,CAAC;IACT,sCAAsC;IACtC,YAAY,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtE,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,2EAA2E;IAC3E,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,wEAAwE;IACxE,YAAY,EAAE,CAAC,CAAC;IAChB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAe,CAAC,CAAC;IAc1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdzB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAGhB,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IA6D9C,iEAAiE;IACjE,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,4DAA4D;IAC5D,IAAI,KAAK,IAAI,qBAAqB,GAAG,IAAI,CAExC;IAED,2EAA2E;IAC3E,IAAI,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAExC;IAED,gDAAgD;IAChD,IAAI,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAExC;IAED,2DAA2D;IAC3D,IAAI,SAAS,IAAI,cAAc,GAAG,IAAI,CAErC;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,gBAAgB,CAe7B;IAED,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAIxB,wEAAwE;IACxE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAInC;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,iEAAiE;IAC3D,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,mDAAmD;IAC7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,yEAAyE;IACnE,OAAO,CAAC,MAAM,GAAE,UAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,sEAAsE;IACtE,OAAO,CAAC,IAAI;YAiBE,IAAI;CAoCnB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,eAAe,CAAC,CAAC,CAAC,CAEpB;AAMD,gFAAgF;AAChF,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,qBAAqB,CAAC;IAC7B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,KAAK,EAAE,CAAC,CAAC;IACT,sCAAsC;IACtC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,qEAAqE;IACrE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC;IAC7E,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,qBAAa,eAAe,CAAC,CAAC;IAQ1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8C;IAC5E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8C;IAC9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8C;IAC7E,OAAO,CAAC,aAAa,CAAK;gBAGP,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,KAAK,EAC5B,GAAG,EAAE,MAAM,MAAM;IAGpC,mEAAmE;IACnE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,iEAAiE;IACjE,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAQ7B,uDAAuD;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAK7C,wBAAwB;IACxB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,0CAA0C;IAC1C,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAK7D,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAK/D,mFAAmF;IACnF,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAK9D,2CAA2C;IAC3C,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,IAAI;IAgCP;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAS7B,kEAAkE;IAClE,IAAI,IAAI,IAAI;IAUZ,6DAA6D;IAC7D,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,OAAO;CAKhB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAQS,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAE1B;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,kBAAkB,CAAK;gBAEnB,GAAG,EAAE,mBAAmB,EAAmB,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAyEpF,0DAA0D;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAUtC,6EAA6E;IAC7E,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAO7B,6CAA6C;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAQ7C,qCAAqC;IACrC,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED,kEAAkE;IAClE,IAAI,QAAQ,IAAI,MAAM,CAIrB;IAED,oEAAoE;IACpE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,iFAAiF;IACjF,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAI7D,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAI/D,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAI9D,qDAAqD;IACrD;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAO7B,IAAI,IAAI,IAAI;IAIZ,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,SAAS;CAMlB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAC,CAAC,CAAC,CAErB"}
@@ -335,6 +335,24 @@ export class RemoteActorLane {
335
335
  for (const listener of [...this.updateListeners])
336
336
  listener(actor);
337
337
  }
338
+ /**
339
+ * The server said this actor is gone (`ActorLeftNotification`, Buddy v0.25.0):
340
+ * drop it now and fire `onLeave` once. A no-op for a uuid this lane does not
341
+ * hold, so a leave that arrives after the reaper already acted, or for a lane
342
+ * the actor never matched, fires nothing twice. A later `actorUpdate` for the
343
+ * same uuid re-adds it and fires `onJoin` again -- a rejoin, per the contract.
344
+ * @returns whether an actor was removed.
345
+ */
346
+ remove(uuid) {
347
+ const actor = this.actors.get(uuid);
348
+ if (!actor)
349
+ return false;
350
+ this.actors.delete(uuid);
351
+ this.revisionValue += 1;
352
+ for (const listener of [...this.leaveListeners])
353
+ listener(actor);
354
+ return true;
355
+ }
338
356
  /** Physically delete stale records, firing `onLeave` for each. */
339
357
  reap() {
340
358
  for (const [uuid, actor] of this.actors) {
@@ -418,6 +436,17 @@ export class RemoteActorStore {
418
436
  break; // first matching lane wins
419
437
  }
420
438
  }));
439
+ // The server announces departures since Buddy v0.25.0: drop the actor the
440
+ // moment the notification lands rather than up to `staleAfterMs` later. The
441
+ // reaper below stays as the fallback for a lost datagram.
442
+ ctx.onDispose(ctx.on('actorLeft', (notification) => {
443
+ const selfUuid = typeof this.config.selfUuid === 'function'
444
+ ? this.config.selfUuid()
445
+ : this.config.selfUuid;
446
+ if (selfUuid && notification.uuid === selfUuid)
447
+ return;
448
+ this.remove(notification.uuid);
449
+ }));
421
450
  const reapInterval = config.reapIntervalMs ?? 1000;
422
451
  if (reapInterval !== false && reapInterval > 0 && staleAfterMs !== false) {
423
452
  ctx.onDispose(ctx.ticker.every(reapInterval, () => this.reap()));
@@ -480,6 +509,18 @@ export class RemoteActorStore {
480
509
  return this.everyLane((lane) => lane.onLeave(listener));
481
510
  }
482
511
  /** Physically delete stale records in every lane. */
512
+ /**
513
+ * Remove one actor from whichever lane holds it, firing that lane's `onLeave`.
514
+ * Wired to `actorLeft` automatically; public so a game can force a departure
515
+ * (e.g. on its own disconnect signal). @returns whether an actor was removed.
516
+ */
517
+ remove(uuid) {
518
+ for (const lane of this.lanes.values()) {
519
+ if (lane.remove(uuid))
520
+ return true;
521
+ }
522
+ return false;
523
+ }
483
524
  reap() {
484
525
  for (const lane of this.lanes.values())
485
526
  lane.reap();
@@ -38,7 +38,7 @@ export interface WorldStoresClient {
38
38
  gameModel: GameModelAPI;
39
39
  }
40
40
  /** The kinds of outbound sends the session can attribute errors to. */
41
- export type SentPacketKind = 'actorUpdate' | 'voxelUpdate' | 'text' | 'clientEvent' | 'audio' | 'singleActorMessage' | 'channelMessage';
41
+ export type SentPacketKind = 'actorUpdate' | 'voxelUpdate' | 'text' | 'clientEvent' | 'audio' | 'video' | 'singleActorMessage' | 'channelMessage';
42
42
  /** A record of one outbound send, kept so errors can be attributed. */
43
43
  export interface SentPacketRecord {
44
44
  kind: SentPacketKind;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/stores/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/stores/session.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ const BUS_KEYS = [
24
24
  'voxelUpdate',
25
25
  'voxelUpdateResponse',
26
26
  'audio',
27
+ 'video',
28
+ 'actorLeft',
27
29
  'text',
28
30
  'clientEvent',
29
31
  'serverEvent',
package/dist/types.d.ts CHANGED
@@ -287,6 +287,32 @@ export interface ClientAudioPacketInput {
287
287
  */
288
288
  sequenceNumber?: number;
289
289
  }
290
+ /**
291
+ * Input for sending ONE webcam video fragment, broadcast to nearby players. `videoData` is base64 of a 6-byte fragment header plus a slice of the encoded frame (see `fragmentFrame`); a frame crosses as up to 16 of these.
292
+ */
293
+ export interface ClientVideoPacketInput {
294
+ /** Id of the app the video is sent from. */
295
+ appId: number;
296
+ /** Chunk the video source is located in. */
297
+ chunk: ChunkCoordinatesInput;
298
+ /** The video source's 32-ASCII-character id (typically the player's). */
299
+ uuid: string;
300
+ /** One video fragment (6-byte header + frame slice), base64-encoded. */
301
+ videoData: string;
302
+ /** Chunk replication distance, `0`–`8` (clamped). Defaults to `1` for video; every receiver in range pays the egress bytes. */
303
+ distance?: number;
304
+ /**
305
+ * Decay algorithm (`0` none, `1` exponential, `2`–`5` linear 50/25/10/5%).
306
+ * Defaults server-side to `0` (none) for video packets.
307
+ */
308
+ decayRate?: number;
309
+ /**
310
+ * Client-assigned correlation id (uint8 `0`–`255`, wraps modulo 256).
311
+ * **Correlation only** — not an idempotency key. Echoed on any
312
+ * `GenericErrorResponse` for this send.
313
+ */
314
+ sequenceNumber?: number;
315
+ }
290
316
  /**
291
317
  * Input for sending a text/chat message, broadcast to nearby players.
292
318
  */
@@ -510,6 +536,63 @@ export interface ClientAudioNotification {
510
536
  /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
511
537
  epochMillis: BigInt;
512
538
  }
539
+ /**
540
+ * Fan-out notification carrying ONE webcam video fragment from a nearby client (Buddy v0.25.0). Reassemble with `VideoFrameAssembler`.
541
+ * Delivered on the `udpNotifications` subscription.
542
+ */
543
+ export interface ClientVideoNotification {
544
+ /** Discriminator for the {@link UdpNotification} union. */
545
+ __typename: 'ClientVideoNotification';
546
+ /** Id of the app the video is from ({@link BigInt} decimal string). */
547
+ appId: BigInt;
548
+ /** X coordinate of the video source's chunk ({@link BigInt} int64 decimal string). */
549
+ chunkX: BigInt;
550
+ /** Y coordinate of the video source's chunk ({@link BigInt} int64 decimal string). */
551
+ chunkY: BigInt;
552
+ /** Z coordinate of the video source's chunk ({@link BigInt} int64 decimal string). */
553
+ chunkZ: BigInt;
554
+ /** Chunk replication distance (`0`–`8`) from the original message. */
555
+ distance: number;
556
+ /** Decay algorithm (`0`–`5`) from the original message. */
557
+ decayRate: number;
558
+ /** The 32-ASCII-character id of the video source (typically the player). */
559
+ uuid: string;
560
+ /** One video fragment (6-byte header + frame slice), base64-encoded (decode with {@link decodeBase64}). */
561
+ videoData: string;
562
+ /** The sender's sequence number for this message (`0`–`255`). */
563
+ sequenceNumber: number;
564
+ /** Server-generated timestamp in epoch milliseconds ({@link BigInt} string). */
565
+ epochMillis: BigInt;
566
+ }
567
+ /**
568
+ * The server stopped considering an actor present (Buddy v0.25.0): emitted ONCE
569
+ * over the actor's last chunk about five seconds after its last update, never for
570
+ * a mere server migration. Treat a later {@link ActorUpdateNotification} for the
571
+ * same `uuid` as a rejoin. The World Stores remove the actor and fire `onLeave`
572
+ * on receipt.
573
+ */
574
+ export interface ActorLeftNotification {
575
+ /** Discriminator. */
576
+ __typename: 'ActorLeftNotification';
577
+ /** Id of the app the actor was in ({@link BigInt} decimal string). */
578
+ appId: string;
579
+ /** X coordinate of the actor's last chunk ({@link BigInt} int64 decimal string). */
580
+ chunkX: string;
581
+ /** Y coordinate of the actor's last chunk ({@link BigInt} int64 decimal string). */
582
+ chunkY: string;
583
+ /** Z coordinate of the actor's last chunk ({@link BigInt} int64 decimal string). */
584
+ chunkZ: string;
585
+ /** Replication distance (0–8) the notification was fanned out over. */
586
+ distance: number;
587
+ /** The 32-ASCII-character id of the actor that left. */
588
+ uuid: string;
589
+ /** `0` = STALE (it stopped updating). `1` is reserved; treat anything else as STALE. */
590
+ leftReason: number;
591
+ /** Correlation byte from the datagram tail (always 0 today). */
592
+ sequenceNumber: number;
593
+ /** Server-generated epoch milliseconds ({@link BigInt} decimal string). */
594
+ epochMillis: string;
595
+ }
513
596
  /**
514
597
  * Fan-out notification carrying a nearby client's text/chat message.
515
598
  * Delivered on the `udpNotifications` subscription.
@@ -626,7 +709,7 @@ export interface GenericErrorResponse {
626
709
  * client uses the equivalent codegen-derived {@link SpatialNotification}
627
710
  * /`UdpNotification` shapes; these hand-written interfaces mirror them.)
628
711
  */
629
- export type UdpNotification = ActorUpdateNotification | ActorUpdateResponse | VoxelUpdateNotification | VoxelUpdateResponse | ClientAudioNotification | ClientTextNotification | ClientEventNotification | ServerEventNotification | GenericErrorResponse;
712
+ export type UdpNotification = ActorUpdateNotification | ActorUpdateResponse | VoxelUpdateNotification | VoxelUpdateResponse | ClientAudioNotification | ClientVideoNotification | ActorLeftNotification | ClientTextNotification | ClientEventNotification | ServerEventNotification | GenericErrorResponse;
630
713
  /**
631
714
  * Minimal endpoint/timeout configuration shape (HTTP + WebSocket endpoints and
632
715
  * a request timeout). The full client options used by the package entry point
@@ -658,6 +741,10 @@ export type VoxelUpdateHandler = (notification: VoxelUpdateNotification) => void
658
741
  export type VoxelUpdateResponseHandler = (response: VoxelUpdateResponse) => void;
659
742
  /** Callback for a {@link ClientAudioNotification} (nearby voice/audio packet). */
660
743
  export type ClientAudioHandler = (notification: ClientAudioNotification) => void;
744
+ /** Callback for a {@link ClientVideoNotification} (one nearby webcam video fragment). */
745
+ export type ClientVideoHandler = (notification: ClientVideoNotification) => void;
746
+ /** Callback for an {@link ActorLeftNotification} (an actor stopped being present). */
747
+ export type ActorLeftHandler = (notification: ActorLeftNotification) => void;
661
748
  /** Callback for a {@link ClientTextNotification} (nearby text/chat message). */
662
749
  export type ClientTextHandler = (notification: ClientTextNotification) => void;
663
750
  /** Callback for a {@link ClientEventNotification} (nearby custom client event). */
@@ -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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"}