@magicworks/client-party-game 0.1.0-rc.3 → 0.1.0-rc.5

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/client.d.ts CHANGED
@@ -28,7 +28,9 @@ export interface PartyGameClientOptions {
28
28
  /**
29
29
  * Each region's own name, e.g. `{ 'eu-west-1': 'https://party-ws.prod-eu-west-1.cat.roxi.tv' }`.
30
30
  * A room is reached at its code's region (see PARTY_REGIONS) wherever the
31
- * global name would send this TV now. Without it, everything goes to `url`.
31
+ * global name would send this TV now. The servers say where each region is
32
+ * when a room opens (PartyRouting), which takes over from this: it is only
33
+ * for servers from before they did. Without either, everything goes to `url`.
32
34
  */
33
35
  regionUrls?: Record<string, string>;
34
36
  /** socket.io-client's `io`: see `PartySocketFactory`. */
@@ -47,6 +49,14 @@ export interface PartyGameClientOptions {
47
49
  ackTimeoutMs?: number;
48
50
  /** How often the clock offset to the server is measured again. */
49
51
  clockSyncIntervalMs?: number;
52
+ /**
53
+ * How long a room's region can be out of reach before the client gives up
54
+ * on the room and opens a new one through the global name - if that can be
55
+ * reached, so a TV that is offline itself keeps its room: see watchRegion.
56
+ */
57
+ regionFallbackMs?: number;
58
+ /** How long a region given up on is kept away from. */
59
+ regionDownMs?: number;
50
60
  }
51
61
  type PlayersListener = (players: PartyPlayer[]) => void;
52
62
  type AllAnsweredListener = (round: number) => void;
@@ -70,13 +80,22 @@ type SessionListener = (session: PartyHostSession) => void;
70
80
  */
71
81
  export declare class PartyGameClient {
72
82
  private readonly url;
73
- private readonly regionUrls;
83
+ /** Built in at first, then as the servers say: see PartyRouting. */
84
+ private regionUrls;
85
+ /** Regions given up on, until when: their rooms are looked for through the global name. */
86
+ private downRegions;
74
87
  private readonly io;
75
88
  private readonly hostId;
76
89
  private readonly roomMemory;
77
90
  private readonly logger;
78
91
  private readonly ackTimeoutMs;
79
92
  private readonly clockSyncIntervalMs;
93
+ private readonly regionFallbackMs;
94
+ private readonly regionDownMs;
95
+ /** Runs while the current socket, routed to a room's region, is not connected. */
96
+ private regionTimer;
97
+ /** A connection to the global name, seeing whether it is the region that is out of reach. */
98
+ private regionProbe;
80
99
  private socket;
81
100
  /** The room code the current socket was routed by, if any. */
82
101
  private routedCode;
@@ -125,10 +144,24 @@ export declare class PartyGameClient {
125
144
  private currentSocket;
126
145
  private setAttached;
127
146
  private whenAttached;
128
- /** Where `code`'s room is: its region's servers, or for no room, the nearest. */
147
+ /**
148
+ * Where `code`'s room is: its region's servers, or for no room - or one in
149
+ * a region given up on - the nearest.
150
+ */
129
151
  private urlFor;
130
152
  /** A socket routed by `code`, to `url` (by default, where `code`'s room is). */
131
153
  private connectTo;
154
+ /**
155
+ * Gives a room's region `regionFallbackMs` to answer `socket`, routed to it
156
+ * by `code` (null stops watching). A region that does not is checked
157
+ * against the global name: if that answers, the region is down - its rooms
158
+ * with it, as a room lives in one server's memory - so the client goes
159
+ * through the global name instead, where the room's code gets a new room,
160
+ * in a region that is up. If it does not either, it is this TV that is
161
+ * offline, and the room is waited for: it may well still be there.
162
+ */
163
+ private watchRegion;
164
+ private closeRegionProbe;
132
165
  private openSocket;
133
166
  /**
134
167
  * Back on the room we were already hosting, so a dropped connection
@@ -199,18 +232,26 @@ export declare class PartyGameClient {
199
232
  * answers, and the game goes on without it.
200
233
  */
201
234
  adBreak(): Promise<boolean>;
202
- endGame(): Promise<PartyPlayer[]>;
203
235
  /**
204
- * Same players, scores back to zero, room back to the lobby. A server past
205
- * its drain deadline plays no more games, and closes the room instead: the
206
- * lobby then opens fresh on another server, with a code to scan.
236
+ * Ends the game: the final standings, which the phones are shown too.
237
+ * Throws when the server refuses - the room is gone, say - rather than
238
+ * hand back the last roster as if it were the standings, so the TV knows
239
+ * the game did not close cleanly.
207
240
  */
241
+ endGame(): Promise<PartyPlayer[]>;
208
242
  /**
209
243
  * Puts the players of a room that was lost mid-game into this lobby, for
210
244
  * their phones to claim back by name: see HostEvent.Restore. The roster
211
245
  * with them in it, pending; the last known one if the server would not.
212
246
  */
213
247
  restore(players: HostRestoreRequest['players']): Promise<PartyPlayer[]>;
248
+ /**
249
+ * Same players, scores back to zero, room back to the lobby. A server past
250
+ * its drain deadline plays no more games, and closes the room instead: the
251
+ * lobby then opens fresh on another server, with a code to scan. Throws
252
+ * when the server refuses, so the lobby does not take the old roster for a
253
+ * restarted one.
254
+ */
214
255
  restart(): Promise<PartyPlayer[]>;
215
256
  onPlayers(listener: PlayersListener): () => boolean;
216
257
  onAllAnswered(listener: AllAnsweredListener): () => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -4,11 +4,23 @@ exports.PartyGameClient = void 0;
4
4
  const protocol_1 = require("./protocol");
5
5
  const defaultAckTimeoutMs = 8000;
6
6
  const defaultClockSyncIntervalMs = 60 * 1000;
7
+ const defaultRegionFallbackMs = 12 * 1000;
8
+ const defaultRegionDownMs = 5 * 60 * 1000;
7
9
  const clockSyncSamples = 5;
8
10
  /** Servers that can be on their way out at once, during a deploy. */
9
11
  const maxDrainingRetries = 3;
10
12
  /** Hops a room can have made between servers since we last knew its code. */
11
13
  const maxRedirects = 3;
14
+ /**
15
+ * A host call refused as moving is tried again once the room has moved: the
16
+ * server holds the room still from before it says where it is going, so the
17
+ * refusal may come while this connection is still the room's. Then the retry
18
+ * waits this long, this many times, for the move to be announced - long
19
+ * enough in all for a move that fails, which the server gives up on after
20
+ * 30s and lets the room go on where it is.
21
+ */
22
+ const movingRetryMs = 2000;
23
+ const maxMovingRetries = 16;
12
24
  /** What this client can do beyond the first protocol: see Feature. */
13
25
  const features = [protocol_1.Feature.Move];
14
26
  const processHostId = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
@@ -31,6 +43,14 @@ function withTimeout(promise, ms, what) {
31
43
  });
32
44
  });
33
45
  }
46
+ /** URLs without trailing slashes. No Object.entries or fromEntries: older TV browsers lack them, and the app has no polyfill. */
47
+ function tidyUrls(urls) {
48
+ const tidy = {};
49
+ for (const key of Object.keys(urls)) {
50
+ tidy[key] = urls[key].replace(/\/+$/, '');
51
+ }
52
+ return tidy;
53
+ }
34
54
  function routesAlike(a, b) {
35
55
  return (a ? (0, protocol_1.codePrefixOf)(a) : null) === (b ? (0, protocol_1.codePrefixOf)(b) : null);
36
56
  }
@@ -52,13 +72,22 @@ function routesAlike(a, b) {
52
72
  */
53
73
  class PartyGameClient {
54
74
  url;
75
+ /** Built in at first, then as the servers say: see PartyRouting. */
55
76
  regionUrls;
77
+ /** Regions given up on, until when: their rooms are looked for through the global name. */
78
+ downRegions = {};
56
79
  io;
57
80
  hostId;
58
81
  roomMemory;
59
82
  logger;
60
83
  ackTimeoutMs;
61
84
  clockSyncIntervalMs;
85
+ regionFallbackMs;
86
+ regionDownMs;
87
+ /** Runs while the current socket, routed to a room's region, is not connected. */
88
+ regionTimer = null;
89
+ /** A connection to the global name, seeing whether it is the region that is out of reach. */
90
+ regionProbe = null;
62
91
  socket = null;
63
92
  /** The room code the current socket was routed by, if any. */
64
93
  routedCode = null;
@@ -90,13 +119,7 @@ class PartyGameClient {
90
119
  clockSyncTimer = null;
91
120
  constructor(options) {
92
121
  this.url = options.url.replace(/\/+$/, '');
93
- /* No Object.entries or fromEntries: older TV browsers lack them, and the
94
- app has no polyfill. */
95
- const regionUrls = options.regionUrls || {};
96
- this.regionUrls = {};
97
- for (const region of Object.keys(regionUrls)) {
98
- this.regionUrls[region] = regionUrls[region].replace(/\/+$/, '');
99
- }
122
+ this.regionUrls = tidyUrls(options.regionUrls || {});
100
123
  this.io = options.io;
101
124
  this.hostId = options.hostId || processHostId;
102
125
  this.roomMemory = options.roomMemory || moduleRoomMemory;
@@ -104,6 +127,8 @@ class PartyGameClient {
104
127
  this.ackTimeoutMs = options.ackTimeoutMs ?? defaultAckTimeoutMs;
105
128
  this.clockSyncIntervalMs =
106
129
  options.clockSyncIntervalMs ?? defaultClockSyncIntervalMs;
130
+ this.regionFallbackMs = options.regionFallbackMs ?? defaultRegionFallbackMs;
131
+ this.regionDownMs = options.regionDownMs ?? defaultRegionDownMs;
107
132
  }
108
133
  getSession() {
109
134
  return this.session;
@@ -162,14 +187,19 @@ class PartyGameClient {
162
187
  }
163
188
  return withTimeout(new Promise(resolve => this.attachedWaiters.push(resolve)), this.ackTimeoutMs, `${what} (reconnecting)`);
164
189
  }
165
- /** Where `code`'s room is: its region's servers, or for no room, the nearest. */
190
+ /**
191
+ * Where `code`'s room is: its region's servers, or for no room - or one in
192
+ * a region given up on - the nearest.
193
+ */
166
194
  urlFor(code) {
167
- return code
168
- ? (0, protocol_1.socketUrlForCode)(code, {
169
- socketUrl: this.url,
170
- regionSocketUrls: this.regionUrls,
171
- })
172
- : this.url;
195
+ const region = code ? (0, protocol_1.regionOfCode)(code) : null;
196
+ if (!code || (region && (this.downRegions[region] || 0) > Date.now())) {
197
+ return this.url;
198
+ }
199
+ return (0, protocol_1.socketUrlForCode)(code, {
200
+ socketUrl: this.url,
201
+ regionSocketUrls: this.regionUrls,
202
+ });
173
203
  }
174
204
  /** A socket routed by `code`, to `url` (by default, where `code`'s room is). */
175
205
  connectTo(code, url = this.urlFor(code)) {
@@ -184,14 +214,74 @@ class PartyGameClient {
184
214
  timeout: this.ackTimeoutMs,
185
215
  });
186
216
  }
217
+ /**
218
+ * Gives a room's region `regionFallbackMs` to answer `socket`, routed to it
219
+ * by `code` (null stops watching). A region that does not is checked
220
+ * against the global name: if that answers, the region is down - its rooms
221
+ * with it, as a room lives in one server's memory - so the client goes
222
+ * through the global name instead, where the room's code gets a new room,
223
+ * in a region that is up. If it does not either, it is this TV that is
224
+ * offline, and the room is waited for: it may well still be there.
225
+ */
226
+ watchRegion(socket, code) {
227
+ if (this.regionTimer) {
228
+ clearTimeout(this.regionTimer);
229
+ this.regionTimer = null;
230
+ }
231
+ this.closeRegionProbe();
232
+ if (!code) {
233
+ return;
234
+ }
235
+ this.regionTimer = setTimeout(() => {
236
+ this.regionTimer = null;
237
+ if (socket !== this.socket || socket.connected) {
238
+ return;
239
+ }
240
+ const probe = this.connectTo(null, this.url);
241
+ this.regionProbe = probe;
242
+ probe.on('connect', () => {
243
+ if (probe !== this.regionProbe) {
244
+ return;
245
+ }
246
+ this.closeRegionProbe();
247
+ if (socket !== this.socket || socket.connected) {
248
+ return;
249
+ }
250
+ const region = (0, protocol_1.regionOfCode)(code);
251
+ if (region) {
252
+ this.downRegions[region] = Date.now() + this.regionDownMs;
253
+ }
254
+ this.logger.warn('PartyGames', 'region', region, 'out of reach, going through', this.url, 'for', code);
255
+ this.socketFor(code, { fresh: true });
256
+ });
257
+ probe.on('connect_error', () => {
258
+ if (probe === this.regionProbe) {
259
+ /* offline here too: the room is waited for */
260
+ this.watchRegion(socket, code);
261
+ }
262
+ });
263
+ }, this.regionFallbackMs);
264
+ }
265
+ closeRegionProbe() {
266
+ const probe = this.regionProbe;
267
+ if (probe) {
268
+ this.regionProbe = null;
269
+ probe.close();
270
+ }
271
+ }
187
272
  openSocket(code) {
188
273
  this.setAttached(false);
189
- const socket = this.connectTo(code);
274
+ const url = this.urlFor(code);
275
+ const socket = this.connectTo(code, url);
276
+ /* a room in a region of its own: watched in case that region is down */
277
+ const regional = code && url !== this.url ? code : null;
278
+ this.watchRegion(socket, regional);
190
279
  socket.on('connect', () => {
191
280
  if (socket !== this.socket) {
192
281
  return;
193
282
  }
194
- this.logger.debug('PartyGames', 'connected to', this.url);
283
+ this.logger.debug('PartyGames', 'connected to', url);
284
+ this.watchRegion(socket, null);
195
285
  this.syncClock();
196
286
  this.reattach(socket);
197
287
  });
@@ -201,6 +291,7 @@ class PartyGameClient {
201
291
  }
202
292
  this.logger.debug('PartyGames', 'disconnected');
203
293
  this.setAttached(false);
294
+ this.watchRegion(socket, regional);
204
295
  });
205
296
  socket.on('connect_error', (error) => {
206
297
  this.logger.warn('PartyGames', 'connect error', error?.message);
@@ -274,6 +365,13 @@ class PartyGameClient {
274
365
  ...response,
275
366
  reused: same ? Boolean(this.session?.reused) : response.reused,
276
367
  });
368
+ if (response.status === 'playing' &&
369
+ !this.countdownStarted &&
370
+ this.countdownListeners.size > 0) {
371
+ /* away as the game was readied: the countdown may have started
372
+ without this connection, and the server tells one that asks */
373
+ this.readyForGame();
374
+ }
277
375
  }
278
376
  else if (response?.reason === protocol_1.HostRefusal.Moved && response.movedTo) {
279
377
  /* it left that server while we were away: follow it */
@@ -298,6 +396,9 @@ class PartyGameClient {
298
396
  }
299
397
  /** Takes on a session the server has handed back, rerouting by its code if need be. */
300
398
  adopt(response) {
399
+ if (response.regionSocketUrls) {
400
+ this.regionUrls = tidyUrls(response.regionSocketUrls);
401
+ }
301
402
  const previous = this.session;
302
403
  this.redirectCode = null;
303
404
  this.session = {
@@ -338,9 +439,15 @@ class PartyGameClient {
338
439
  await this.whenAttached(event);
339
440
  const response = await this.send(this.socket || socket, event, payload);
340
441
  const reason = response?.reason;
341
- if (reason !== protocol_1.HostRefusal.Moving || attempt >= maxRedirects) {
442
+ if (reason !== protocol_1.HostRefusal.Moving || attempt >= maxMovingRetries) {
342
443
  return response;
343
444
  }
445
+ if (this.attached) {
446
+ /* refused before the server said where the room is going: the
447
+ room:move follows, and has us reconnecting - or the move failed
448
+ and the server lets the room go on here after a while */
449
+ await new Promise(resolve => setTimeout(resolve, movingRetryMs));
450
+ }
344
451
  /* the room:move that came before this answer has us reconnecting */
345
452
  await this.whenAttached(event);
346
453
  }
@@ -564,7 +671,10 @@ class PartyGameClient {
564
671
  * The round starts at the time `waitForRoundGo` resolves with.
565
672
  */
566
673
  async startRound(config) {
567
- await this.emit(protocol_1.HostEvent.RoundStart, config);
674
+ const response = await this.emit(protocol_1.HostEvent.RoundStart, config);
675
+ if (!response?.ok) {
676
+ throw new Error(response?.error || 'failed to open the round');
677
+ }
568
678
  }
569
679
  /** When the server has said a round starts: at once if it already has. */
570
680
  waitForRoundGo(round) {
@@ -604,19 +714,20 @@ class PartyGameClient {
604
714
  return false;
605
715
  }
606
716
  }
717
+ /**
718
+ * Ends the game: the final standings, which the phones are shown too.
719
+ * Throws when the server refuses - the room is gone, say - rather than
720
+ * hand back the last roster as if it were the standings, so the TV knows
721
+ * the game did not close cleanly.
722
+ */
607
723
  async endGame() {
608
724
  const response = await this.emit(protocol_1.HostEvent.GameEnd);
609
725
  if (!response?.ok) {
610
- return this.players;
726
+ throw new Error(response?.error || 'failed to end the game');
611
727
  }
612
728
  this.players = response.standings || [];
613
729
  return this.players;
614
730
  }
615
- /**
616
- * Same players, scores back to zero, room back to the lobby. A server past
617
- * its drain deadline plays no more games, and closes the room instead: the
618
- * lobby then opens fresh on another server, with a code to scan.
619
- */
620
731
  /**
621
732
  * Puts the players of a room that was lost mid-game into this lobby, for
622
733
  * their phones to claim back by name: see HostEvent.Restore. The roster
@@ -633,6 +744,13 @@ class PartyGameClient {
633
744
  }
634
745
  return this.players;
635
746
  }
747
+ /**
748
+ * Same players, scores back to zero, room back to the lobby. A server past
749
+ * its drain deadline plays no more games, and closes the room instead: the
750
+ * lobby then opens fresh on another server, with a code to scan. Throws
751
+ * when the server refuses, so the lobby does not take the old roster for a
752
+ * restarted one.
753
+ */
636
754
  async restart() {
637
755
  const response = await this.emit(protocol_1.HostEvent.Restart);
638
756
  if (response?.reason ===
@@ -643,15 +761,16 @@ class PartyGameClient {
643
761
  this.socketFor(null, { fresh: true });
644
762
  return (await this.host(gameType, genre, genreName, true)).players;
645
763
  }
646
- if (response?.ok) {
647
- this.players = response.players || [];
648
- if (this.session) {
649
- this.session = {
650
- ...this.session,
651
- status: 'lobby',
652
- players: this.players,
653
- };
654
- }
764
+ if (!response?.ok) {
765
+ throw new Error(response?.error || 'failed to restart the game');
766
+ }
767
+ this.players = response.players || [];
768
+ if (this.session) {
769
+ this.session = {
770
+ ...this.session,
771
+ status: 'lobby',
772
+ players: this.players,
773
+ };
655
774
  }
656
775
  return this.players;
657
776
  }
@@ -691,6 +810,11 @@ class PartyGameClient {
691
810
  clearInterval(this.clockSyncTimer);
692
811
  this.clockSyncTimer = null;
693
812
  }
813
+ if (this.regionTimer) {
814
+ clearTimeout(this.regionTimer);
815
+ this.regionTimer = null;
816
+ }
817
+ this.closeRegionProbe();
694
818
  this.session = null;
695
819
  this.redirectCode = null;
696
820
  this.players = [];
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,18 @@ export declare const MAX_PLAYERS = 20;
24
24
  */
25
25
  export declare const REOPEN_WINDOW_MS: number;
26
26
  export declare const TOTAL_ROUNDS = 15;
27
+ /**
28
+ * How many rounds the server lets a game have; a TV asking for anything else
29
+ * gets TOTAL_ROUNDS (or the room's count). The lobby offers 5 to 30.
30
+ */
31
+ export declare const MIN_ROUNDS = 1;
32
+ export declare const MAX_ROUNDS = 30;
27
33
  export declare const MAX_NAME_LENGTH = 16;
34
+ /** The most options a round may put to the phones, and the longest an option's label or detail may be. */
35
+ export declare const MAX_OPTIONS = 8;
36
+ export declare const MAX_OPTION_LENGTH = 200;
37
+ /** The longest a round may run, in milliseconds. */
38
+ export declare const MAX_ROUND_DURATION_MS: number;
28
39
  /**
29
40
  * A round starts on the TV and the phones at once: when the host has the
30
41
  * round's video preloaded the server picks a start time ROUND_LEAD_MS ahead -
@@ -286,9 +297,19 @@ export interface PartyHostSession {
286
297
  status: PartyStatus;
287
298
  players: PartyPlayer[];
288
299
  }
300
+ /**
301
+ * Where each region's party servers are, as the servers know it: their answer
302
+ * to a TV opening or re-attaching to a room carries it, so a client reaches a
303
+ * room in its code's region (see PARTY_REGIONS) without a list of its own -
304
+ * and a region added or moved needs no new client.
305
+ */
306
+ export interface PartyRouting {
307
+ /** Each region's own socket URL, e.g. `{ 'eu-west-1': 'https://party-ws.prod-eu-west-1.cat.roxi.tv' }`. */
308
+ regionSocketUrls?: Record<string, string>;
309
+ }
289
310
  export type HostCreateAck = (Ack & {
290
311
  ok: true;
291
- } & PartyHostSession) | (Ack & {
312
+ } & PartyHostSession & PartyRouting) | (Ack & {
292
313
  ok: false;
293
314
  reason?: (typeof HostRefusal)[keyof typeof HostRefusal];
294
315
  movedTo?: string;
@@ -443,6 +464,13 @@ export interface PlayerJoinRequest {
443
464
  name?: string;
444
465
  /** Kept by the phone, so a rejoin keeps its score. */
445
466
  playerId?: string | null;
467
+ /**
468
+ * Made up by the phone for a join from scratch, and sent again with a
469
+ * retry of it: a join the server took but whose answer never reached the
470
+ * phone left a seat under the name, which this retry gets back rather than
471
+ * be refused as a name taken. Nothing else matches it.
472
+ */
473
+ joinId?: string;
446
474
  features?: PartyFeature[];
447
475
  }
448
476
  export interface PlayerJoinAck extends Ack {
@@ -455,6 +483,13 @@ export interface PlayerJoinAck extends Ack {
455
483
  }
456
484
  export interface PlayerAnswerRequest {
457
485
  index: number;
486
+ /**
487
+ * The round the answer is for. One that reaches the server once another
488
+ * round is on - held up on a stalled connection, say - is refused as
489
+ * `no-round` rather than counted for a round the player never saw. Pages
490
+ * before this field leave it out, and are scored against the round on.
491
+ */
492
+ round?: number;
458
493
  }
459
494
  export interface PlayerAnswerAck extends Ack {
460
495
  reason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * authority on who scored what.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.Feature = exports.PlayerRefusal = exports.HostRefusal = exports.GameStatus = exports.PlayerMessage = exports.HostMessage = exports.PlayerEvent = exports.HostEvent = exports.TimeEvent = exports.GameMessage = exports.GameEvent = exports.PARTY_REGIONS = exports.SPEEDTEST_SIZES = exports.ROUTING_QUERY_KEY = exports.CODE_PREFIX_LENGTH = exports.CODE_LENGTH = exports.CODE_ALPHABET = exports.GAME_READY_TIMEOUT_MS = exports.ROUND_LEAD_MS = exports.MAX_NAME_LENGTH = exports.TOTAL_ROUNDS = exports.REOPEN_WINDOW_MS = exports.MAX_PLAYERS = void 0;
19
+ exports.Feature = exports.PlayerRefusal = exports.HostRefusal = exports.GameStatus = exports.PlayerMessage = exports.HostMessage = exports.PlayerEvent = exports.HostEvent = exports.TimeEvent = exports.GameMessage = exports.GameEvent = exports.PARTY_REGIONS = exports.SPEEDTEST_SIZES = exports.ROUTING_QUERY_KEY = exports.CODE_PREFIX_LENGTH = exports.CODE_LENGTH = exports.CODE_ALPHABET = exports.GAME_READY_TIMEOUT_MS = exports.ROUND_LEAD_MS = exports.MAX_ROUND_DURATION_MS = exports.MAX_OPTION_LENGTH = exports.MAX_OPTIONS = exports.MAX_NAME_LENGTH = exports.MAX_ROUNDS = exports.MIN_ROUNDS = exports.TOTAL_ROUNDS = exports.REOPEN_WINDOW_MS = exports.MAX_PLAYERS = void 0;
20
20
  exports.speedtestPath = speedtestPath;
21
21
  exports.phonePageConfigScript = phonePageConfigScript;
22
22
  exports.socketUrlForCode = socketUrlForCode;
@@ -34,7 +34,18 @@ exports.MAX_PLAYERS = 20;
34
34
  */
35
35
  exports.REOPEN_WINDOW_MS = 20 * 60 * 1000;
36
36
  exports.TOTAL_ROUNDS = 15;
37
+ /**
38
+ * How many rounds the server lets a game have; a TV asking for anything else
39
+ * gets TOTAL_ROUNDS (or the room's count). The lobby offers 5 to 30.
40
+ */
41
+ exports.MIN_ROUNDS = 1;
42
+ exports.MAX_ROUNDS = 30;
37
43
  exports.MAX_NAME_LENGTH = 16;
44
+ /** The most options a round may put to the phones, and the longest an option's label or detail may be. */
45
+ exports.MAX_OPTIONS = 8;
46
+ exports.MAX_OPTION_LENGTH = 200;
47
+ /** The longest a round may run, in milliseconds. */
48
+ exports.MAX_ROUND_DURATION_MS = 5 * 60 * 1000;
38
49
  /**
39
50
  * A round starts on the TV and the phones at once: when the host has the
40
51
  * round's video preloaded the server picks a start time ROUND_LEAD_MS ahead -
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicworks/client-party-game",
3
- "version": "0.1.0-rc.3",
3
+ "version": "0.1.0-rc.5",
4
4
  "description": "Host TV client and wire protocol for the party game server",
5
5
  "author": "Luis Ávila <luis.avila@faststream.network>",
6
6
  "main": "dist/index.js",