@thegeem/protocol 0.1.35 → 0.1.36
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/index.d.cts +21 -1
- package/dist/index.d.ts +21 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -738,6 +738,25 @@ interface CategoryView {
|
|
|
738
738
|
/** Category's brand color (hex, e.g. '#E8473F') for board coloring; absent if the category has none. */
|
|
739
739
|
color?: string;
|
|
740
740
|
}
|
|
741
|
+
/**
|
|
742
|
+
* A content pack — the grouping the category strip renders as a row (geem-server#76).
|
|
743
|
+
*
|
|
744
|
+
* **The ARRAY ORDER is the pack order.** That is the point of this type: pack order previously had no
|
|
745
|
+
* home on the wire, so all four clients derived it by first-seen from `categories[]` (Android's
|
|
746
|
+
* `onlineGroupedPacks`, iOS's `order: [String]`, and web/TV their own). Four derivations of one fact,
|
|
747
|
+
* and when the server's own category order turned out to be non-deterministic the strip reshuffled
|
|
748
|
+
* between visits (gs#74) with nothing on the wire to pin it. One ordered array replaces all four.
|
|
749
|
+
*
|
|
750
|
+
* Deliberately NO `sortOrder` field: an ordered array already carries the order, and a positional index
|
|
751
|
+
* beside it would be the same fact stored twice — which is exactly the drift argument that made
|
|
752
|
+
* `has_image` a boolean rather than a filename. Position cannot disagree with itself.
|
|
753
|
+
*/
|
|
754
|
+
interface PackView {
|
|
755
|
+
id: string;
|
|
756
|
+
name: string;
|
|
757
|
+
/** Does this pack have cover art at `/assets/cat/pack-<id>.png`? Absent until the admin field ships. */
|
|
758
|
+
hasImage?: boolean;
|
|
759
|
+
}
|
|
741
760
|
type GameStatus = 'setup' | 'categorySelection' | 'inProgress' | 'completed';
|
|
742
761
|
type GameplayFlow = 'classic' | 'openJudged' | 'noHost' | 'buzzer';
|
|
743
762
|
type BuzzerGameMode = 'off' | 'solo' | 'race' | 'controller';
|
|
@@ -968,6 +987,7 @@ type ServerMsg = {
|
|
|
968
987
|
hostPinned?: boolean;
|
|
969
988
|
players: LobbyPlayer[];
|
|
970
989
|
categories: CategoryView[];
|
|
990
|
+
packs?: PackView[];
|
|
971
991
|
selectedCategoryIds: string[];
|
|
972
992
|
teams: TeamSlotView[];
|
|
973
993
|
hostActivity: 'configuring' | 'idle';
|
|
@@ -1026,4 +1046,4 @@ type ServerMsg = {
|
|
|
1026
1046
|
message: string;
|
|
1027
1047
|
};
|
|
1028
1048
|
|
|
1029
|
-
export { type AvatarView, type BuzzerGameMode, CHARACTER_IDS, type CategoryView, type CharacterId, ClientMsg, type DamaMoveView, type DamaPieceView, type DamaStateView, EMOTE_IDS, type Effect, type EmoteId, type ErsimhaStateView, GAMES, GAME_IDS, type GameId, type GameInfo, type GameStateView, type GameStatus, type GameplayFlow, type HelpName, LIMITS, type LobbyPlayer, MIN_SUPPORTED_PV, MODES, MODE_IDS, type ModeId, type ModeInfo, PROTOCOL_VERSION, type QuestionView, ROOM_ALPHABET, type RosterEntry, type ServerMsg, type SoundName, type StrokePointView, type TeamSlotView, type TeamView, type YouContext, gameIdForPv, gamesForPv, modesForGame };
|
|
1049
|
+
export { type AvatarView, type BuzzerGameMode, CHARACTER_IDS, type CategoryView, type CharacterId, ClientMsg, type DamaMoveView, type DamaPieceView, type DamaStateView, EMOTE_IDS, type Effect, type EmoteId, type ErsimhaStateView, GAMES, GAME_IDS, type GameId, type GameInfo, type GameStateView, type GameStatus, type GameplayFlow, type HelpName, LIMITS, type LobbyPlayer, MIN_SUPPORTED_PV, MODES, MODE_IDS, type ModeId, type ModeInfo, PROTOCOL_VERSION, type PackView, type QuestionView, ROOM_ALPHABET, type RosterEntry, type ServerMsg, type SoundName, type StrokePointView, type TeamSlotView, type TeamView, type YouContext, gameIdForPv, gamesForPv, modesForGame };
|
package/dist/index.d.ts
CHANGED
|
@@ -738,6 +738,25 @@ interface CategoryView {
|
|
|
738
738
|
/** Category's brand color (hex, e.g. '#E8473F') for board coloring; absent if the category has none. */
|
|
739
739
|
color?: string;
|
|
740
740
|
}
|
|
741
|
+
/**
|
|
742
|
+
* A content pack — the grouping the category strip renders as a row (geem-server#76).
|
|
743
|
+
*
|
|
744
|
+
* **The ARRAY ORDER is the pack order.** That is the point of this type: pack order previously had no
|
|
745
|
+
* home on the wire, so all four clients derived it by first-seen from `categories[]` (Android's
|
|
746
|
+
* `onlineGroupedPacks`, iOS's `order: [String]`, and web/TV their own). Four derivations of one fact,
|
|
747
|
+
* and when the server's own category order turned out to be non-deterministic the strip reshuffled
|
|
748
|
+
* between visits (gs#74) with nothing on the wire to pin it. One ordered array replaces all four.
|
|
749
|
+
*
|
|
750
|
+
* Deliberately NO `sortOrder` field: an ordered array already carries the order, and a positional index
|
|
751
|
+
* beside it would be the same fact stored twice — which is exactly the drift argument that made
|
|
752
|
+
* `has_image` a boolean rather than a filename. Position cannot disagree with itself.
|
|
753
|
+
*/
|
|
754
|
+
interface PackView {
|
|
755
|
+
id: string;
|
|
756
|
+
name: string;
|
|
757
|
+
/** Does this pack have cover art at `/assets/cat/pack-<id>.png`? Absent until the admin field ships. */
|
|
758
|
+
hasImage?: boolean;
|
|
759
|
+
}
|
|
741
760
|
type GameStatus = 'setup' | 'categorySelection' | 'inProgress' | 'completed';
|
|
742
761
|
type GameplayFlow = 'classic' | 'openJudged' | 'noHost' | 'buzzer';
|
|
743
762
|
type BuzzerGameMode = 'off' | 'solo' | 'race' | 'controller';
|
|
@@ -968,6 +987,7 @@ type ServerMsg = {
|
|
|
968
987
|
hostPinned?: boolean;
|
|
969
988
|
players: LobbyPlayer[];
|
|
970
989
|
categories: CategoryView[];
|
|
990
|
+
packs?: PackView[];
|
|
971
991
|
selectedCategoryIds: string[];
|
|
972
992
|
teams: TeamSlotView[];
|
|
973
993
|
hostActivity: 'configuring' | 'idle';
|
|
@@ -1026,4 +1046,4 @@ type ServerMsg = {
|
|
|
1026
1046
|
message: string;
|
|
1027
1047
|
};
|
|
1028
1048
|
|
|
1029
|
-
export { type AvatarView, type BuzzerGameMode, CHARACTER_IDS, type CategoryView, type CharacterId, ClientMsg, type DamaMoveView, type DamaPieceView, type DamaStateView, EMOTE_IDS, type Effect, type EmoteId, type ErsimhaStateView, GAMES, GAME_IDS, type GameId, type GameInfo, type GameStateView, type GameStatus, type GameplayFlow, type HelpName, LIMITS, type LobbyPlayer, MIN_SUPPORTED_PV, MODES, MODE_IDS, type ModeId, type ModeInfo, PROTOCOL_VERSION, type QuestionView, ROOM_ALPHABET, type RosterEntry, type ServerMsg, type SoundName, type StrokePointView, type TeamSlotView, type TeamView, type YouContext, gameIdForPv, gamesForPv, modesForGame };
|
|
1049
|
+
export { type AvatarView, type BuzzerGameMode, CHARACTER_IDS, type CategoryView, type CharacterId, ClientMsg, type DamaMoveView, type DamaPieceView, type DamaStateView, EMOTE_IDS, type Effect, type EmoteId, type ErsimhaStateView, GAMES, GAME_IDS, type GameId, type GameInfo, type GameStateView, type GameStatus, type GameplayFlow, type HelpName, LIMITS, type LobbyPlayer, MIN_SUPPORTED_PV, MODES, MODE_IDS, type ModeId, type ModeInfo, PROTOCOL_VERSION, type PackView, type QuestionView, ROOM_ALPHABET, type RosterEntry, type ServerMsg, type SoundName, type StrokePointView, type TeamSlotView, type TeamView, type YouContext, gameIdForPv, gamesForPv, modesForGame };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thegeem/protocol",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.36",
|
|
4
4
|
"description": "Geem's wire protocol — shared zod schemas + TypeScript types for talking to the Geem game server over Socket.IO. The source of truth all clients implement against.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://geem.tv",
|