@hellacardgames/speed 0.5.2 → 0.6.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 (45) hide show
  1. package/dist/client/index.cjs.map +1 -1
  2. package/dist/client/index.d.cts +2 -3
  3. package/dist/client/index.d.cts.map +1 -1
  4. package/dist/client/index.d.mts +2 -3
  5. package/dist/client/index.d.mts.map +1 -1
  6. package/dist/client/index.mjs.map +1 -1
  7. package/dist/{startGame-5InkAgEp.d.cts → index-FveApXzq.d.cts} +52 -36
  8. package/dist/index-FveApXzq.d.cts.map +1 -0
  9. package/dist/{startGame-ayp8a-Cl.d.mts → index-J8s2QklC.d.mts} +52 -36
  10. package/dist/index-J8s2QklC.d.mts.map +1 -0
  11. package/dist/index-YAYbNr-s.d.cts +200 -0
  12. package/dist/index-YAYbNr-s.d.cts.map +1 -0
  13. package/dist/index-YAYbNr-s.d.mts +200 -0
  14. package/dist/index-YAYbNr-s.d.mts.map +1 -0
  15. package/dist/manager/index.cjs +2 -32
  16. package/dist/manager/index.d.cts +2 -109
  17. package/dist/manager/index.d.mts +2 -109
  18. package/dist/manager/index.mjs +2 -22
  19. package/dist/manager-BOymBQ4E.mjs +817 -0
  20. package/dist/manager-BOymBQ4E.mjs.map +1 -0
  21. package/dist/manager-BpKvQbcp.cjs +822 -0
  22. package/dist/manager-BpKvQbcp.cjs.map +1 -0
  23. package/dist/server/index.cjs +138 -157
  24. package/dist/server/index.cjs.map +1 -1
  25. package/dist/server/index.d.cts +3 -40
  26. package/dist/server/index.d.mts +3 -40
  27. package/dist/server/index.mjs +138 -157
  28. package/dist/server/index.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/GameEvent-DDQ4jXxt.d.cts +0 -111
  31. package/dist/GameEvent-DDQ4jXxt.d.cts.map +0 -1
  32. package/dist/GameEvent-DDQ4jXxt.d.mts +0 -111
  33. package/dist/GameEvent-DDQ4jXxt.d.mts.map +0 -1
  34. package/dist/manager/index.cjs.map +0 -1
  35. package/dist/manager/index.d.cts.map +0 -1
  36. package/dist/manager/index.d.mts.map +0 -1
  37. package/dist/manager/index.mjs.map +0 -1
  38. package/dist/server/index.d.cts.map +0 -1
  39. package/dist/server/index.d.mts.map +0 -1
  40. package/dist/startGame-5InkAgEp.d.cts.map +0 -1
  41. package/dist/startGame-BC9XfFzG.mjs +0 -815
  42. package/dist/startGame-BC9XfFzG.mjs.map +0 -1
  43. package/dist/startGame-Bhk__XWk.cjs +0 -898
  44. package/dist/startGame-Bhk__XWk.cjs.map +0 -1
  45. package/dist/startGame-ayp8a-Cl.d.mts.map +0 -1
@@ -0,0 +1,200 @@
1
+ //#region src/manager/types/Card.d.ts
2
+ type Card = {
3
+ readonly id: string;
4
+ readonly rank: 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;
5
+ readonly suite: "clubs" | "diamonds" | "hearts" | "spades";
6
+ };
7
+ //#endregion
8
+ //#region src/manager/types/ChatMessage.d.ts
9
+ type ChatMessage = {
10
+ readonly id: string;
11
+ readonly username: string;
12
+ readonly text: string;
13
+ };
14
+ //#endregion
15
+ //#region src/manager/types/ClientState.d.ts
16
+ type ClientState = {
17
+ readonly status: "open" | "started" | "completed" | "forfeited";
18
+ readonly gameId: string;
19
+ readonly playerId: string;
20
+ readonly username: string;
21
+ readonly players: readonly Player[];
22
+ readonly expiresAt: number;
23
+ readonly chatMessages: readonly ChatMessage[];
24
+ readonly hand: readonly Card[];
25
+ readonly canPlayAt: number | null;
26
+ };
27
+ type Player = {
28
+ readonly username: string;
29
+ readonly handSize: number;
30
+ readonly drawPileSize: number;
31
+ readonly sidePileSize: number;
32
+ readonly centerPileTopCard: Card | null;
33
+ };
34
+ //#endregion
35
+ //#region src/manager/types/GameEvent.d.ts
36
+ type GameEvent = {
37
+ readonly type: "canPlayAtUpdated";
38
+ readonly id: string;
39
+ readonly canPlayAt: number;
40
+ } | {
41
+ readonly type: "cardDrawnFromSidePileToCenterPile";
42
+ readonly id: string;
43
+ readonly username: string;
44
+ readonly card: Card;
45
+ } | {
46
+ readonly type: "cardPlayed";
47
+ readonly id: string;
48
+ readonly username: string;
49
+ readonly card: Card;
50
+ readonly isForOtherPlayerPile: boolean;
51
+ } | {
52
+ readonly type: "chat";
53
+ readonly id: string;
54
+ readonly message: ChatMessage;
55
+ } | {
56
+ readonly type: "drewCard";
57
+ readonly id: string;
58
+ readonly card: Card;
59
+ } | {
60
+ readonly type: "expirationUpdated";
61
+ readonly id: string;
62
+ readonly expiresAt: number;
63
+ } | {
64
+ readonly type: "gameCompleted";
65
+ readonly id: string;
66
+ } | {
67
+ readonly type: "gameForfeited";
68
+ readonly id: string;
69
+ } | {
70
+ readonly type: "gameStarted";
71
+ readonly id: string;
72
+ } | {
73
+ readonly type: "handInitialized";
74
+ readonly id: string;
75
+ readonly cards: readonly Card[];
76
+ } | {
77
+ readonly type: "playerCenterPileInitialized";
78
+ readonly id: string;
79
+ readonly username: string;
80
+ readonly card: Card;
81
+ } | {
82
+ readonly type: "playerDrawPileInitialized";
83
+ readonly id: string;
84
+ readonly username: string;
85
+ readonly numCards: number;
86
+ } | {
87
+ readonly type: "playerDrewCard";
88
+ readonly id: string;
89
+ readonly username: string;
90
+ } | {
91
+ readonly type: "playerHandInitialized";
92
+ readonly id: string;
93
+ readonly username: string;
94
+ readonly numCards: number;
95
+ } | {
96
+ readonly type: "playerJoined";
97
+ readonly id: string;
98
+ readonly username: string;
99
+ } | {
100
+ readonly type: "playerLeft";
101
+ readonly id: string;
102
+ readonly username: string;
103
+ } | {
104
+ readonly type: "playerSidePileInitialized";
105
+ readonly id: string;
106
+ readonly username: string;
107
+ readonly numCards: number;
108
+ };
109
+ //#endregion
110
+ //#region src/manager/Manager.d.ts
111
+ type CreateGameResult = {
112
+ readonly success: true;
113
+ readonly gameId: string;
114
+ readonly playerId: string;
115
+ } | {
116
+ readonly success: false;
117
+ readonly error: "maxGamesReached";
118
+ };
119
+ type DrawCardResult = {
120
+ readonly success: true;
121
+ } | {
122
+ readonly success: false;
123
+ readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
124
+ };
125
+ type GetClientStateAndClearEventsResult = {
126
+ readonly success: true;
127
+ readonly state: ClientState;
128
+ } | {
129
+ readonly success: false;
130
+ readonly error: "gameNotFound" | "playerNotFound";
131
+ };
132
+ type GetEventsAndClearAcknowledgedResult = {
133
+ readonly success: true;
134
+ readonly events: readonly GameEvent[];
135
+ } | {
136
+ readonly success: false;
137
+ readonly error: "gameNotFound" | "playerNotFound";
138
+ };
139
+ type GetJoinableGamesResult = {
140
+ readonly games: readonly {
141
+ readonly id: string;
142
+ readonly numPlayers: number;
143
+ }[];
144
+ };
145
+ type JoinGameResult = {
146
+ readonly success: true;
147
+ readonly playerId: string;
148
+ } | {
149
+ readonly success: false;
150
+ readonly error: "gameNotFound" | "invalidStatus" | "maxPlayersReached" | "alreadyInGame";
151
+ };
152
+ type LeaveGameResult = {
153
+ readonly success: true;
154
+ } | {
155
+ readonly success: false;
156
+ readonly error: "gameNotFound" | "playerNotFound";
157
+ };
158
+ type PlayCardResult = {
159
+ readonly success: true;
160
+ } | {
161
+ readonly success: false;
162
+ readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
163
+ };
164
+ type ReportNoPlayableCardsResult = {
165
+ readonly success: true;
166
+ } | {
167
+ readonly success: false;
168
+ readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
169
+ };
170
+ type SendChatResult = {
171
+ readonly success: true;
172
+ } | {
173
+ readonly success: false;
174
+ readonly error: "gameNotFound" | "playerNotFound";
175
+ };
176
+ type StartGameResult = {
177
+ readonly success: true;
178
+ } | {
179
+ readonly success: false;
180
+ readonly error: "gameNotFound" | "invalidStatus" | "playerNotFound" | "playerNotAdmin" | "minPlayersNotReached";
181
+ };
182
+ declare class Manager {
183
+ private readonly games;
184
+ private readonly watchdog;
185
+ constructor();
186
+ createGame(userId: string, username: string): CreateGameResult;
187
+ drawCard(gameId: string, playerId: string): DrawCardResult;
188
+ getClientStateAndClearEvents(gameId: string, playerId: string): GetClientStateAndClearEventsResult;
189
+ getEventsAndClearAcknowledged(gameId: string, playerId: string, lastReadId: string | null): GetEventsAndClearAcknowledgedResult;
190
+ getJoinableGames(): GetJoinableGamesResult;
191
+ joinGame(gameId: string, userId: string, username: string): JoinGameResult;
192
+ leaveGame(gameId: string, playerId: string): LeaveGameResult;
193
+ playCard(gameId: string, playerId: string, cardId: string, isForOtherPlayerPile: boolean): PlayCardResult;
194
+ reportNoPlayableCards(gameId: string, playerId: string): ReportNoPlayableCardsResult;
195
+ sendChat(gameId: string, playerId: string, text: string): SendChatResult;
196
+ startGame(gameId: string, playerId: string): StartGameResult;
197
+ }
198
+ //#endregion
199
+ export { GetJoinableGamesResult as a, Manager as c, SendChatResult as d, StartGameResult as f, Card as g, ChatMessage as h, GetEventsAndClearAcknowledgedResult as i, PlayCardResult as l, ClientState as m, DrawCardResult as n, JoinGameResult as o, GameEvent as p, GetClientStateAndClearEventsResult as r, LeaveGameResult as s, CreateGameResult as t, ReportNoPlayableCardsResult as u };
200
+ //# sourceMappingURL=index-YAYbNr-s.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-YAYbNr-s.d.mts","names":[],"sources":["../src/manager/types/Card.ts","../src/manager/types/ChatMessage.ts","../src/manager/types/ClientState.ts","../src/manager/types/GameEvent.ts","../src/manager/Manager.ts"],"mappings":";KAAY;WACD;WACA;WACA;;;;KCHC;WACD;WACA;WACA;;;;KCAC;WACD;WACA;WACA;WACA;WACA,kBAAkB;WAClB;WACA,uBAAuB;WACvB,eAAe;WACf;;KAGN;WACM;WACA;WACA;WACA;WACA,mBAAmB;;;;KCjBlB;WAEG;WACA;WACA;;WAGA;WACA;WACA;WACA,MAAM;;WAGN;WACA;WACA;WACA,MAAM;WACN;;WAGA;WACA;WACA,SAAS;;WAGT;WACA;WACA,MAAM;;WAGN;WACA;WACA;;WAGA;WACA;;WAGA;WACA;;WAGA;WACA;;WAGA;WACA;WACA,gBAAgB;;WAGhB;WACA;WACA;WACA,MAAM;;WAGN;WACA;WACA;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;WACA;;;;KCtEH;WAEG;WACA;WACA;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;KASH;WAEG;WACA,OAAO;;WAGP;WACA;;KAGH;WAEG;WACA,iBAAiB;;WAGjB;WACA;;KAGH;WACD;aACE;aACA;;;KAID;WAEG;WACA;;WAGA;WACA;;KAOH;WAEG;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;KASH;WAEG;;WAGA;WACA;;KAUH;WAEG;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;cAQF;mBACM;mBACA;;EAQjB,WAAW,gBAAgB,mBAAmB;EA4B9C,SAAS,gBAAgB,mBAAmB;EA8B5C,6BACE,gBACA,mBACC;EAgCH,8BACE,gBACA,kBACA,4BACC;EAgBH,oBAAoB;EAWpB,SAAS,gBAAgB,gBAAgB,mBAAmB;EA8B5D,UAAU,gBAAgB,mBAAmB;EAkC7C,SACE,gBACA,kBACA,gBACA,gCACC;EAwDH,sBACE,gBACA,mBACC;EAuFH,SAAS,gBAAgB,kBAAkB,eAAe;EAmB1D,UAAU,gBAAgB,mBAAmB"}
@@ -1,33 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_startGame = require("../startGame-Bhk__XWk.cjs");
3
- //#region src/manager/watchdog.ts
4
- var Watchdog = class {
5
- start() {
6
- console.log(`watchdog start at ${Date.now()} (${require_startGame.GAME_KEY})`);
7
- setInterval(() => this.wakeUp(), require_startGame.WATCHDOG_INTERVAL_MS);
8
- }
9
- wakeUp() {
10
- const now = Date.now();
11
- for (const game of require_startGame.games.values()) if (game.expiresAt <= now) {
12
- require_startGame.games.delete(game.id);
13
- console.log(`watchdog purged ${game.id} (${require_startGame.GAME_KEY})`);
14
- }
15
- }
16
- };
17
- //#endregion
18
- //#region src/manager/index.ts
19
- new Watchdog().start();
20
- //#endregion
21
- exports.createGame = require_startGame.createGame;
22
- exports.drawCard = require_startGame.drawCard;
23
- exports.getClientStateAndClearEvents = require_startGame.getClientStateAndClearEvents;
24
- exports.getEventsAndClearAcknowledged = require_startGame.getEventsAndClearAcknowledged;
25
- exports.getJoinableGames = require_startGame.getJoinableGames;
26
- exports.joinGame = require_startGame.joinGame;
27
- exports.leaveGame = require_startGame.leaveGame;
28
- exports.playCard = require_startGame.playCard;
29
- exports.reportNoPlayableCards = require_startGame.reportNoPlayableCards;
30
- exports.sendChat = require_startGame.sendChat;
31
- exports.startGame = require_startGame.startGame;
32
-
33
- //# sourceMappingURL=index.cjs.map
2
+ const require_manager = require("../manager-BpKvQbcp.cjs");
3
+ exports.Manager = require_manager.Manager;
@@ -1,109 +1,2 @@
1
- import { n as ClientState, t as GameEvent } from "../GameEvent-DDQ4jXxt.cjs";
2
-
3
- //#region src/manager/actions/createGame.d.ts
4
- type CreateGameResult = {
5
- readonly success: true;
6
- readonly gameId: string;
7
- readonly playerId: string;
8
- } | {
9
- readonly success: false;
10
- readonly error: "maxGamesReached";
11
- };
12
- declare function createGame(userId: string, username: string): CreateGameResult;
13
- //#endregion
14
- //#region src/manager/actions/drawCard.d.ts
15
- type DrawCardResult = {
16
- readonly success: true;
17
- } | {
18
- readonly success: false;
19
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
20
- };
21
- declare function drawCard(gameId: string, playerId: string): DrawCardResult;
22
- //#endregion
23
- //#region src/manager/actions/getClientStateAndClearEvents.d.ts
24
- type GetClientStateAndClearEventsResult = {
25
- readonly success: true;
26
- readonly state: ClientState;
27
- } | {
28
- readonly success: false;
29
- readonly error: "gameNotFound" | "playerNotFound";
30
- };
31
- declare function getClientStateAndClearEvents(gameId: string, playerId: string): GetClientStateAndClearEventsResult;
32
- //#endregion
33
- //#region src/manager/actions/getEventsAndClearAcknowledged.d.ts
34
- type GetEventsAndClearAcknowledgedResult = {
35
- readonly success: true;
36
- readonly events: readonly GameEvent[];
37
- } | {
38
- readonly success: false;
39
- readonly error: "gameNotFound" | "playerNotFound";
40
- };
41
- declare function getEventsAndClearAcknowledged(gameId: string, playerId: string, lastReadId: string | null): GetEventsAndClearAcknowledgedResult;
42
- //#endregion
43
- //#region src/manager/actions/getJoinableGames.d.ts
44
- type GetJoinableGamesResult = {
45
- readonly success: true;
46
- readonly games: readonly {
47
- readonly id: string;
48
- readonly numPlayers: number;
49
- }[];
50
- };
51
- declare function getJoinableGames(): GetJoinableGamesResult;
52
- //#endregion
53
- //#region src/manager/actions/joinGame.d.ts
54
- type JoinGameResult = {
55
- readonly success: true;
56
- readonly playerId: string;
57
- } | {
58
- readonly success: false;
59
- readonly error: "gameNotFound" | "invalidStatus" | "maxPlayersReached" | "alreadyInGame";
60
- };
61
- declare function joinGame(gameId: string, userId: string, username: string): JoinGameResult;
62
- //#endregion
63
- //#region src/manager/actions/leaveGame.d.ts
64
- type LeaveGameResult = {
65
- readonly success: true;
66
- } | {
67
- readonly success: false;
68
- readonly error: "gameNotFound" | "playerNotFound";
69
- };
70
- declare function leaveGame(gameId: string, playerId: string): LeaveGameResult;
71
- //#endregion
72
- //#region src/manager/actions/playCard.d.ts
73
- type PlayCardResult = {
74
- readonly success: true;
75
- } | {
76
- readonly success: false;
77
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
78
- };
79
- declare function playCard(gameId: string, playerId: string, cardId: string, isForOtherPlayerPile: boolean): PlayCardResult;
80
- //#endregion
81
- //#region src/manager/actions/reportNoPlayableCards.d.ts
82
- type ReportNoPlayableCardsResult = {
83
- readonly success: true;
84
- } | {
85
- readonly success: false;
86
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
87
- };
88
- declare function reportNoPlayableCards(gameId: string, playerId: string): ReportNoPlayableCardsResult;
89
- //#endregion
90
- //#region src/manager/actions/sendChat.d.ts
91
- type SendChatResult = {
92
- readonly success: true;
93
- } | {
94
- readonly success: false;
95
- readonly error: "gameNotFound" | "playerNotFound";
96
- };
97
- declare function sendChat(gameId: string, playerId: string, text: string): SendChatResult;
98
- //#endregion
99
- //#region src/manager/actions/startGame.d.ts
100
- type StartGameResult = {
101
- readonly success: true;
102
- } | {
103
- readonly success: false;
104
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "playerNotAdmin" | "minPlayersNotReached";
105
- };
106
- declare function startGame(gameId: string, playerId: string): StartGameResult;
107
- //#endregion
108
- export { createGame, drawCard, getClientStateAndClearEvents, getEventsAndClearAcknowledged, getJoinableGames, joinGame, leaveGame, playCard, reportNoPlayableCards, sendChat, startGame };
109
- //# sourceMappingURL=index.d.cts.map
1
+ import { a as GetJoinableGamesResult, c as Manager, d as SendChatResult, f as StartGameResult, g as Card, h as ChatMessage, i as GetEventsAndClearAcknowledgedResult, l as PlayCardResult, m as ClientState, n as DrawCardResult, o as JoinGameResult, p as GameEvent, r as GetClientStateAndClearEventsResult, s as LeaveGameResult, t as CreateGameResult, u as ReportNoPlayableCardsResult } from "../index-YAYbNr-s.cjs";
2
+ export { type Card, type ChatMessage, type ClientState, type CreateGameResult, type DrawCardResult, type GameEvent, type GetClientStateAndClearEventsResult, type GetEventsAndClearAcknowledgedResult, type GetJoinableGamesResult, type JoinGameResult, type LeaveGameResult, Manager, type PlayCardResult, type ReportNoPlayableCardsResult, type SendChatResult, type StartGameResult };
@@ -1,109 +1,2 @@
1
- import { n as ClientState, t as GameEvent } from "../GameEvent-DDQ4jXxt.mjs";
2
-
3
- //#region src/manager/actions/createGame.d.ts
4
- type CreateGameResult = {
5
- readonly success: true;
6
- readonly gameId: string;
7
- readonly playerId: string;
8
- } | {
9
- readonly success: false;
10
- readonly error: "maxGamesReached";
11
- };
12
- declare function createGame(userId: string, username: string): CreateGameResult;
13
- //#endregion
14
- //#region src/manager/actions/drawCard.d.ts
15
- type DrawCardResult = {
16
- readonly success: true;
17
- } | {
18
- readonly success: false;
19
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
20
- };
21
- declare function drawCard(gameId: string, playerId: string): DrawCardResult;
22
- //#endregion
23
- //#region src/manager/actions/getClientStateAndClearEvents.d.ts
24
- type GetClientStateAndClearEventsResult = {
25
- readonly success: true;
26
- readonly state: ClientState;
27
- } | {
28
- readonly success: false;
29
- readonly error: "gameNotFound" | "playerNotFound";
30
- };
31
- declare function getClientStateAndClearEvents(gameId: string, playerId: string): GetClientStateAndClearEventsResult;
32
- //#endregion
33
- //#region src/manager/actions/getEventsAndClearAcknowledged.d.ts
34
- type GetEventsAndClearAcknowledgedResult = {
35
- readonly success: true;
36
- readonly events: readonly GameEvent[];
37
- } | {
38
- readonly success: false;
39
- readonly error: "gameNotFound" | "playerNotFound";
40
- };
41
- declare function getEventsAndClearAcknowledged(gameId: string, playerId: string, lastReadId: string | null): GetEventsAndClearAcknowledgedResult;
42
- //#endregion
43
- //#region src/manager/actions/getJoinableGames.d.ts
44
- type GetJoinableGamesResult = {
45
- readonly success: true;
46
- readonly games: readonly {
47
- readonly id: string;
48
- readonly numPlayers: number;
49
- }[];
50
- };
51
- declare function getJoinableGames(): GetJoinableGamesResult;
52
- //#endregion
53
- //#region src/manager/actions/joinGame.d.ts
54
- type JoinGameResult = {
55
- readonly success: true;
56
- readonly playerId: string;
57
- } | {
58
- readonly success: false;
59
- readonly error: "gameNotFound" | "invalidStatus" | "maxPlayersReached" | "alreadyInGame";
60
- };
61
- declare function joinGame(gameId: string, userId: string, username: string): JoinGameResult;
62
- //#endregion
63
- //#region src/manager/actions/leaveGame.d.ts
64
- type LeaveGameResult = {
65
- readonly success: true;
66
- } | {
67
- readonly success: false;
68
- readonly error: "gameNotFound" | "playerNotFound";
69
- };
70
- declare function leaveGame(gameId: string, playerId: string): LeaveGameResult;
71
- //#endregion
72
- //#region src/manager/actions/playCard.d.ts
73
- type PlayCardResult = {
74
- readonly success: true;
75
- } | {
76
- readonly success: false;
77
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
78
- };
79
- declare function playCard(gameId: string, playerId: string, cardId: string, isForOtherPlayerPile: boolean): PlayCardResult;
80
- //#endregion
81
- //#region src/manager/actions/reportNoPlayableCards.d.ts
82
- type ReportNoPlayableCardsResult = {
83
- readonly success: true;
84
- } | {
85
- readonly success: false;
86
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
87
- };
88
- declare function reportNoPlayableCards(gameId: string, playerId: string): ReportNoPlayableCardsResult;
89
- //#endregion
90
- //#region src/manager/actions/sendChat.d.ts
91
- type SendChatResult = {
92
- readonly success: true;
93
- } | {
94
- readonly success: false;
95
- readonly error: "gameNotFound" | "playerNotFound";
96
- };
97
- declare function sendChat(gameId: string, playerId: string, text: string): SendChatResult;
98
- //#endregion
99
- //#region src/manager/actions/startGame.d.ts
100
- type StartGameResult = {
101
- readonly success: true;
102
- } | {
103
- readonly success: false;
104
- readonly error: "gameNotFound" | "playerNotFound" | "invalidStatus" | "playerNotAdmin" | "minPlayersNotReached";
105
- };
106
- declare function startGame(gameId: string, playerId: string): StartGameResult;
107
- //#endregion
108
- export { createGame, drawCard, getClientStateAndClearEvents, getEventsAndClearAcknowledged, getJoinableGames, joinGame, leaveGame, playCard, reportNoPlayableCards, sendChat, startGame };
109
- //# sourceMappingURL=index.d.mts.map
1
+ import { a as GetJoinableGamesResult, c as Manager, d as SendChatResult, f as StartGameResult, g as Card, h as ChatMessage, i as GetEventsAndClearAcknowledgedResult, l as PlayCardResult, m as ClientState, n as DrawCardResult, o as JoinGameResult, p as GameEvent, r as GetClientStateAndClearEventsResult, s as LeaveGameResult, t as CreateGameResult, u as ReportNoPlayableCardsResult } from "../index-YAYbNr-s.mjs";
2
+ export { type Card, type ChatMessage, type ClientState, type CreateGameResult, type DrawCardResult, type GameEvent, type GetClientStateAndClearEventsResult, type GetEventsAndClearAcknowledgedResult, type GetJoinableGamesResult, type JoinGameResult, type LeaveGameResult, Manager, type PlayCardResult, type ReportNoPlayableCardsResult, type SendChatResult, type StartGameResult };
@@ -1,22 +1,2 @@
1
- import { a as leaveGame, c as getEventsAndClearAcknowledged, d as createGame, f as games, i as playCard, l as getClientStateAndClearEvents, m as WATCHDOG_INTERVAL_MS, n as sendChat, o as joinGame, p as GAME_KEY, r as reportNoPlayableCards, s as getJoinableGames, t as startGame, u as drawCard } from "../startGame-BC9XfFzG.mjs";
2
- //#region src/manager/watchdog.ts
3
- var Watchdog = class {
4
- start() {
5
- console.log(`watchdog start at ${Date.now()} (${GAME_KEY})`);
6
- setInterval(() => this.wakeUp(), WATCHDOG_INTERVAL_MS);
7
- }
8
- wakeUp() {
9
- const now = Date.now();
10
- for (const game of games.values()) if (game.expiresAt <= now) {
11
- games.delete(game.id);
12
- console.log(`watchdog purged ${game.id} (${GAME_KEY})`);
13
- }
14
- }
15
- };
16
- //#endregion
17
- //#region src/manager/index.ts
18
- new Watchdog().start();
19
- //#endregion
20
- export { createGame, drawCard, getClientStateAndClearEvents, getEventsAndClearAcknowledged, getJoinableGames, joinGame, leaveGame, playCard, reportNoPlayableCards, sendChat, startGame };
21
-
22
- //# sourceMappingURL=index.mjs.map
1
+ import { t as Manager } from "../manager-BOymBQ4E.mjs";
2
+ export { Manager };