@hellacardgames/speed 0.1.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 (38) hide show
  1. package/README.md +9 -0
  2. package/dist/GameEvent-DDQ4jXxt.d.cts +111 -0
  3. package/dist/GameEvent-DDQ4jXxt.d.cts.map +1 -0
  4. package/dist/GameEvent-DDQ4jXxt.d.mts +111 -0
  5. package/dist/GameEvent-DDQ4jXxt.d.mts.map +1 -0
  6. package/dist/client/index.cjs +126 -0
  7. package/dist/client/index.cjs.map +1 -0
  8. package/dist/client/index.d.cts +38 -0
  9. package/dist/client/index.d.cts.map +1 -0
  10. package/dist/client/index.d.mts +38 -0
  11. package/dist/client/index.d.mts.map +1 -0
  12. package/dist/client/index.mjs +125 -0
  13. package/dist/client/index.mjs.map +1 -0
  14. package/dist/manager/index.cjs +33 -0
  15. package/dist/manager/index.cjs.map +1 -0
  16. package/dist/manager/index.d.cts +109 -0
  17. package/dist/manager/index.d.cts.map +1 -0
  18. package/dist/manager/index.d.mts +109 -0
  19. package/dist/manager/index.d.mts.map +1 -0
  20. package/dist/manager/index.mjs +22 -0
  21. package/dist/manager/index.mjs.map +1 -0
  22. package/dist/server/index.cjs +204 -0
  23. package/dist/server/index.cjs.map +1 -0
  24. package/dist/server/index.d.cts +40 -0
  25. package/dist/server/index.d.cts.map +1 -0
  26. package/dist/server/index.d.mts +40 -0
  27. package/dist/server/index.d.mts.map +1 -0
  28. package/dist/server/index.mjs +203 -0
  29. package/dist/server/index.mjs.map +1 -0
  30. package/dist/startGame-5InkAgEp.d.cts +108 -0
  31. package/dist/startGame-5InkAgEp.d.cts.map +1 -0
  32. package/dist/startGame-BC9XfFzG.mjs +815 -0
  33. package/dist/startGame-BC9XfFzG.mjs.map +1 -0
  34. package/dist/startGame-Bhk__XWk.cjs +898 -0
  35. package/dist/startGame-Bhk__XWk.cjs.map +1 -0
  36. package/dist/startGame-ayp8a-Cl.d.mts +108 -0
  37. package/dist/startGame-ayp8a-Cl.d.mts.map +1 -0
  38. package/package.json +92 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["GAME_KEY","WATCHDOG_INTERVAL_MS","games"],"sources":["../../src/manager/watchdog.ts","../../src/manager/index.ts"],"sourcesContent":["import { GAME_KEY, WATCHDOG_INTERVAL_MS } from \"./constants.js\";\nimport { games } from \"./games.js\";\n\nclass Watchdog {\n start() {\n console.log(`watchdog start at ${Date.now()} (${GAME_KEY})`);\n setInterval(() => this.wakeUp(), WATCHDOG_INTERVAL_MS);\n }\n\n wakeUp() {\n const now = Date.now();\n // console.log(`watchdog wakeUp at ${now} (${GAME_KEY})`);\n for (const game of games.values()) {\n if (game.expiresAt <= now) {\n games.delete(game.id);\n console.log(`watchdog purged ${game.id} (${GAME_KEY})`);\n }\n }\n }\n}\n\nexport const watchdog = new Watchdog();\n","import { watchdog } from \"./watchdog.js\";\n\nexport { createGame } from \"./actions/createGame.js\";\nexport { drawCard } from \"./actions/drawCard.js\";\nexport { getClientStateAndClearEvents } from \"./actions/getClientStateAndClearEvents.js\";\nexport { getEventsAndClearAcknowledged } from \"./actions/getEventsAndClearAcknowledged.js\";\nexport { getJoinableGames } from \"./actions/getJoinableGames.js\";\nexport { joinGame } from \"./actions/joinGame.js\";\nexport { leaveGame } from \"./actions/leaveGame.js\";\nexport { playCard } from \"./actions/playCard.js\";\nexport { reportNoPlayableCards } from \"./actions/reportNoPlayableCards.js\";\nexport { sendChat } from \"./actions/sendChat.js\";\nexport { startGame } from \"./actions/startGame.js\";\n\nexport type { Card } from \"./types/Card.js\";\nexport type { ChatMessage } from \"./types/ChatMessage.js\";\nexport type { ClientState } from \"./types/ClientState.js\";\nexport type { GameEvent } from \"./types/GameEvent.js\";\n\nwatchdog.start();\n"],"mappings":";;;AAGA,IAAM,WAAN,MAAe;CACb,QAAQ;EACN,QAAQ,IAAI,qBAAqB,KAAK,IAAI,EAAE,IAAIA,kBAAAA,SAAS,EAAE;EAC3D,kBAAkB,KAAK,OAAO,GAAGC,kBAAAA,oBAAoB;CACvD;CAEA,SAAS;EACP,MAAM,MAAM,KAAK,IAAI;EAErB,KAAK,MAAM,QAAQC,kBAAAA,MAAM,OAAO,GAC9B,IAAI,KAAK,aAAa,KAAK;GACzB,kBAAA,MAAM,OAAO,KAAK,EAAE;GACpB,QAAQ,IAAI,mBAAmB,KAAK,GAAG,IAAIF,kBAAAA,SAAS,EAAE;EACxD;CAEJ;AACF;;;ACAA,IDE4B,SCF5B,CAAA,CAAS,MAAM"}
@@ -0,0 +1,109 @@
1
+ import { i as Card, n as ClientState, r as ChatMessage, 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 { type Card, type ChatMessage, type ClientState, type GameEvent, createGame, drawCard, getClientStateAndClearEvents, getEventsAndClearAcknowledged, getJoinableGames, joinGame, leaveGame, playCard, reportNoPlayableCards, sendChat, startGame };
109
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/manager/actions/createGame.ts","../../src/manager/actions/drawCard.ts","../../src/manager/actions/getClientStateAndClearEvents.ts","../../src/manager/actions/getEventsAndClearAcknowledged.ts","../../src/manager/actions/getJoinableGames.ts","../../src/manager/actions/joinGame.ts","../../src/manager/actions/leaveGame.ts","../../src/manager/actions/playCard.ts","../../src/manager/actions/reportNoPlayableCards.ts","../../src/manager/actions/sendChat.ts","../../src/manager/actions/startGame.ts"],"mappings":";;;KAKK,gBAAA;EAAA,SAEU,OAAA;EAAA,SACA,MAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,UAAA,CAAW,MAAA,UAAgB,QAAA,WAAmB,gBAAgB;;;KCXzE,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBASC,QAAA,CAAS,MAAA,UAAgB,QAAA,WAAmB,cAAc;;;KCjBrE,kCAAA;EAAA,SAEU,OAAA;EAAA,SACA,KAAA,EAAO,WAAW;AAAA;EAAA,SAGlB,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,4BAAA,CACd,MAAA,UACA,QAAA,WACC,kCAAkC;;;KCbhC,mCAAA;EAAA,SAEU,OAAA;EAAA,SACA,MAAA,WAAiB,SAAS;AAAA;EAAA,SAG1B,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,6BAAA,CACd,MAAA,UACA,QAAA,UACA,UAAA,kBACC,mCAAmC;;;KCdjC,sBAAA;EAAA,SACM,OAAA;EAAA,SACA,KAAA;IAAA,SACE,EAAA;IAAA,SACA,UAAA;EAAA;AAAA;AAAA,iBAIG,gBAAA,IAAoB,sBAAsB;;;KCNrD,cAAA;EAAA,SAEU,OAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAOC,QAAA,CACd,MAAA,UACA,MAAA,UACA,QAAA,WACC,cAAc;;;KClBZ,eAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,SAAA,CAAU,MAAA,UAAgB,QAAA,WAAmB,eAAe;;;KCPvE,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBASC,QAAA,CACd,MAAA,UACA,QAAA,UACA,MAAA,UACA,oBAAA,YACC,cAAc;;;KCjBZ,2BAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAUC,qBAAA,CACd,MAAA,UACA,QAAA,WACC,2BAA2B;;;KCzBzB,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,QAAA,CACd,MAAA,UACA,QAAA,UACA,IAAA,WACC,cAAc;;;KCLZ,eAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAQC,SAAA,CAAU,MAAA,UAAgB,QAAA,WAAmB,eAAe"}
@@ -0,0 +1,109 @@
1
+ import { i as Card, n as ClientState, r as ChatMessage, 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 { type Card, type ChatMessage, type ClientState, type GameEvent, createGame, drawCard, getClientStateAndClearEvents, getEventsAndClearAcknowledged, getJoinableGames, joinGame, leaveGame, playCard, reportNoPlayableCards, sendChat, startGame };
109
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/manager/actions/createGame.ts","../../src/manager/actions/drawCard.ts","../../src/manager/actions/getClientStateAndClearEvents.ts","../../src/manager/actions/getEventsAndClearAcknowledged.ts","../../src/manager/actions/getJoinableGames.ts","../../src/manager/actions/joinGame.ts","../../src/manager/actions/leaveGame.ts","../../src/manager/actions/playCard.ts","../../src/manager/actions/reportNoPlayableCards.ts","../../src/manager/actions/sendChat.ts","../../src/manager/actions/startGame.ts"],"mappings":";;;KAKK,gBAAA;EAAA,SAEU,OAAA;EAAA,SACA,MAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,UAAA,CAAW,MAAA,UAAgB,QAAA,WAAmB,gBAAgB;;;KCXzE,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBASC,QAAA,CAAS,MAAA,UAAgB,QAAA,WAAmB,cAAc;;;KCjBrE,kCAAA;EAAA,SAEU,OAAA;EAAA,SACA,KAAA,EAAO,WAAW;AAAA;EAAA,SAGlB,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,4BAAA,CACd,MAAA,UACA,QAAA,WACC,kCAAkC;;;KCbhC,mCAAA;EAAA,SAEU,OAAA;EAAA,SACA,MAAA,WAAiB,SAAS;AAAA;EAAA,SAG1B,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,6BAAA,CACd,MAAA,UACA,QAAA,UACA,UAAA,kBACC,mCAAmC;;;KCdjC,sBAAA;EAAA,SACM,OAAA;EAAA,SACA,KAAA;IAAA,SACE,EAAA;IAAA,SACA,UAAA;EAAA;AAAA;AAAA,iBAIG,gBAAA,IAAoB,sBAAsB;;;KCNrD,cAAA;EAAA,SAEU,OAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAOC,QAAA,CACd,MAAA,UACA,MAAA,UACA,QAAA,WACC,cAAc;;;KClBZ,eAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,SAAA,CAAU,MAAA,UAAgB,QAAA,WAAmB,eAAe;;;KCPvE,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBASC,QAAA,CACd,MAAA,UACA,QAAA,UACA,MAAA,UACA,oBAAA,YACC,cAAc;;;KCjBZ,2BAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAUC,qBAAA,CACd,MAAA,UACA,QAAA,WACC,2BAA2B;;;KCzBzB,cAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAGC,QAAA,CACd,MAAA,UACA,QAAA,UACA,IAAA,WACC,cAAc;;;KCLZ,eAAA;EAAA,SAEU,OAAA;AAAA;EAAA,SAGA,OAAA;EAAA,SACA,KAAA;AAAA;AAAA,iBAQC,SAAA,CAAU,MAAA,UAAgB,QAAA,WAAmB,eAAe"}
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/manager/watchdog.ts","../../src/manager/index.ts"],"sourcesContent":["import { GAME_KEY, WATCHDOG_INTERVAL_MS } from \"./constants.js\";\nimport { games } from \"./games.js\";\n\nclass Watchdog {\n start() {\n console.log(`watchdog start at ${Date.now()} (${GAME_KEY})`);\n setInterval(() => this.wakeUp(), WATCHDOG_INTERVAL_MS);\n }\n\n wakeUp() {\n const now = Date.now();\n // console.log(`watchdog wakeUp at ${now} (${GAME_KEY})`);\n for (const game of games.values()) {\n if (game.expiresAt <= now) {\n games.delete(game.id);\n console.log(`watchdog purged ${game.id} (${GAME_KEY})`);\n }\n }\n }\n}\n\nexport const watchdog = new Watchdog();\n","import { watchdog } from \"./watchdog.js\";\n\nexport { createGame } from \"./actions/createGame.js\";\nexport { drawCard } from \"./actions/drawCard.js\";\nexport { getClientStateAndClearEvents } from \"./actions/getClientStateAndClearEvents.js\";\nexport { getEventsAndClearAcknowledged } from \"./actions/getEventsAndClearAcknowledged.js\";\nexport { getJoinableGames } from \"./actions/getJoinableGames.js\";\nexport { joinGame } from \"./actions/joinGame.js\";\nexport { leaveGame } from \"./actions/leaveGame.js\";\nexport { playCard } from \"./actions/playCard.js\";\nexport { reportNoPlayableCards } from \"./actions/reportNoPlayableCards.js\";\nexport { sendChat } from \"./actions/sendChat.js\";\nexport { startGame } from \"./actions/startGame.js\";\n\nexport type { Card } from \"./types/Card.js\";\nexport type { ChatMessage } from \"./types/ChatMessage.js\";\nexport type { ClientState } from \"./types/ClientState.js\";\nexport type { GameEvent } from \"./types/GameEvent.js\";\n\nwatchdog.start();\n"],"mappings":";;AAGA,IAAM,WAAN,MAAe;CACb,QAAQ;EACN,QAAQ,IAAI,qBAAqB,KAAK,IAAI,EAAE,IAAI,SAAS,EAAE;EAC3D,kBAAkB,KAAK,OAAO,GAAG,oBAAoB;CACvD;CAEA,SAAS;EACP,MAAM,MAAM,KAAK,IAAI;EAErB,KAAK,MAAM,QAAQ,MAAM,OAAO,GAC9B,IAAI,KAAK,aAAa,KAAK;GACzB,MAAM,OAAO,KAAK,EAAE;GACpB,QAAQ,IAAI,mBAAmB,KAAK,GAAG,IAAI,SAAS,EAAE;EACxD;CAEJ;AACF;;;ACAA,IDE4B,SCF5B,CAAA,CAAS,MAAM"}
@@ -0,0 +1,204 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_startGame = require("../startGame-Bhk__XWk.cjs");
3
+ let zod = require("zod");
4
+ //#region src/server/actions/createGame.ts
5
+ function createGame(userId, username) {
6
+ return require_startGame.createGame(userId, username);
7
+ }
8
+ //#endregion
9
+ //#region src/server/actions/drawCard.ts
10
+ const inputSchema$8 = zod.z.object({
11
+ gameId: zod.z.string(),
12
+ playerId: zod.z.string()
13
+ }).transform(({ gameId, playerId }) => [gameId, playerId]);
14
+ function drawCard(input) {
15
+ const parseResult = inputSchema$8.safeParse(input);
16
+ if (!parseResult.success) return {
17
+ success: false,
18
+ error: "invalidInput"
19
+ };
20
+ return require_startGame.drawCard(...parseResult.data);
21
+ }
22
+ //#endregion
23
+ //#region src/server/actions/getClientStateAndClearEvents.ts
24
+ const inputSchema$7 = zod.z.object({
25
+ gameId: zod.z.string(),
26
+ playerId: zod.z.string()
27
+ }).transform(({ gameId, playerId }) => [gameId, playerId]);
28
+ function getClientStateAndClearEvents(input) {
29
+ const parseResult = inputSchema$7.safeParse(input);
30
+ if (!parseResult.success) return {
31
+ success: false,
32
+ error: "invalidInput"
33
+ };
34
+ return require_startGame.getClientStateAndClearEvents(...parseResult.data);
35
+ }
36
+ //#endregion
37
+ //#region src/server/actions/getEventsAndClearAcknowledged.ts
38
+ const inputSchema$6 = zod.z.object({
39
+ gameId: zod.z.string(),
40
+ playerId: zod.z.string(),
41
+ lastReadId: zod.z.string().nullable()
42
+ }).transform(({ gameId, playerId, lastReadId }) => [
43
+ gameId,
44
+ playerId,
45
+ lastReadId
46
+ ]);
47
+ function getEventsAndClearAcknowledged(input) {
48
+ const parseResult = inputSchema$6.safeParse(input);
49
+ if (!parseResult.success) return {
50
+ success: false,
51
+ error: "invalidInput"
52
+ };
53
+ return require_startGame.getEventsAndClearAcknowledged(...parseResult.data);
54
+ }
55
+ //#endregion
56
+ //#region src/server/actions/getJoinableGames.ts
57
+ function getJoinableGames() {
58
+ return require_startGame.getJoinableGames();
59
+ }
60
+ //#endregion
61
+ //#region src/server/actions/joinGame.ts
62
+ const inputSchema$5 = zod.z.object({ gameId: zod.z.string() }).transform(({ gameId }) => [gameId]);
63
+ function joinGame(input, userId, username) {
64
+ const parseResult = inputSchema$5.safeParse(input);
65
+ if (!parseResult.success) return {
66
+ success: false,
67
+ error: "invalidInput"
68
+ };
69
+ return require_startGame.joinGame(...parseResult.data, userId, username);
70
+ }
71
+ //#endregion
72
+ //#region src/server/actions/leaveGame.ts
73
+ const inputSchema$4 = zod.z.object({
74
+ gameId: zod.z.string(),
75
+ playerId: zod.z.string()
76
+ }).transform(({ gameId, playerId }) => [gameId, playerId]);
77
+ function leaveGame(input) {
78
+ const parseResult = inputSchema$4.safeParse(input);
79
+ if (!parseResult.success) return {
80
+ success: false,
81
+ error: "invalidInput"
82
+ };
83
+ return require_startGame.leaveGame(...parseResult.data);
84
+ }
85
+ //#endregion
86
+ //#region src/server/actions/playCard.ts
87
+ const inputSchema$3 = zod.z.object({
88
+ gameId: zod.z.string(),
89
+ playerId: zod.z.string(),
90
+ cardId: zod.z.string(),
91
+ isForOtherPlayerPile: zod.z.boolean()
92
+ }).transform(({ gameId, playerId, cardId, isForOtherPlayerPile }) => [
93
+ gameId,
94
+ playerId,
95
+ cardId,
96
+ isForOtherPlayerPile
97
+ ]);
98
+ function playCard(input) {
99
+ const parseResult = inputSchema$3.safeParse(input);
100
+ if (!parseResult.success) return {
101
+ success: false,
102
+ error: "invalidInput"
103
+ };
104
+ return require_startGame.playCard(...parseResult.data);
105
+ }
106
+ //#endregion
107
+ //#region src/server/actions/reportNoPlayableCards.ts
108
+ const inputSchema$2 = zod.z.object({
109
+ gameId: zod.z.string(),
110
+ playerId: zod.z.string()
111
+ }).transform(({ gameId, playerId }) => [gameId, playerId]);
112
+ function reportNoPlayableCards(input) {
113
+ const parseResult = inputSchema$2.safeParse(input);
114
+ if (!parseResult.success) return {
115
+ success: false,
116
+ error: "invalidInput"
117
+ };
118
+ return require_startGame.reportNoPlayableCards(...parseResult.data);
119
+ }
120
+ //#endregion
121
+ //#region src/server/actions/sendChat.ts
122
+ const inputSchema$1 = zod.z.object({
123
+ gameId: zod.z.string(),
124
+ playerId: zod.z.string(),
125
+ text: zod.z.string()
126
+ }).transform(({ gameId, playerId, text }) => [
127
+ gameId,
128
+ playerId,
129
+ text
130
+ ]);
131
+ function sendChat(input) {
132
+ const parseResult = inputSchema$1.safeParse(input);
133
+ if (!parseResult.success) return {
134
+ success: false,
135
+ error: "invalidInput"
136
+ };
137
+ return require_startGame.sendChat(...parseResult.data);
138
+ }
139
+ //#endregion
140
+ //#region src/server/actions/startGame.ts
141
+ const inputSchema = zod.z.object({
142
+ gameId: zod.z.string(),
143
+ playerId: zod.z.string()
144
+ }).transform(({ gameId, playerId }) => [gameId, playerId]);
145
+ function startGame(input) {
146
+ const parseResult = inputSchema.safeParse(input);
147
+ if (!parseResult.success) return {
148
+ success: false,
149
+ error: "invalidInput"
150
+ };
151
+ return require_startGame.startGame(...parseResult.data);
152
+ }
153
+ //#endregion
154
+ //#region src/server/index.ts
155
+ const actions = [
156
+ {
157
+ path: "/createGame",
158
+ func: createGame
159
+ },
160
+ {
161
+ path: "/drawCard",
162
+ func: drawCard
163
+ },
164
+ {
165
+ path: "/getClientStateAndClearEvents",
166
+ func: getClientStateAndClearEvents
167
+ },
168
+ {
169
+ path: "/getEventsAndClearAcknowledged",
170
+ func: getEventsAndClearAcknowledged
171
+ },
172
+ {
173
+ path: "/getJoinableGames",
174
+ func: getJoinableGames
175
+ },
176
+ {
177
+ path: "/joinGame",
178
+ func: joinGame
179
+ },
180
+ {
181
+ path: "/leaveGame",
182
+ func: leaveGame
183
+ },
184
+ {
185
+ path: "/playCard",
186
+ func: playCard
187
+ },
188
+ {
189
+ path: "/reportNoPlayableCards",
190
+ func: reportNoPlayableCards
191
+ },
192
+ {
193
+ path: "/sendChat",
194
+ func: sendChat
195
+ },
196
+ {
197
+ path: "/startGame",
198
+ func: startGame
199
+ }
200
+ ];
201
+ //#endregion
202
+ exports.actions = actions;
203
+
204
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["doCreateGame","inputSchema","z","doDrawCard","inputSchema","z","doGetClientStateAndClearEvents","inputSchema","z","doGetEventsAndClearAcknowledged","doGetJoinableGames","inputSchema","z","doJoinGame","inputSchema","z","doLeaveGame","inputSchema","z","doPlayCard","inputSchema","z","doReportNoPlayableCards","inputSchema","z","doSendChat","z","doStartGame"],"sources":["../../src/server/actions/createGame.ts","../../src/server/actions/drawCard.ts","../../src/server/actions/getClientStateAndClearEvents.ts","../../src/server/actions/getEventsAndClearAcknowledged.ts","../../src/server/actions/getJoinableGames.ts","../../src/server/actions/joinGame.ts","../../src/server/actions/leaveGame.ts","../../src/server/actions/playCard.ts","../../src/server/actions/reportNoPlayableCards.ts","../../src/server/actions/sendChat.ts","../../src/server/actions/startGame.ts","../../src/server/index.ts"],"sourcesContent":["import { createGame as doCreateGame } from \"../../manager/actions/createGame.js\";\n\nexport type CreateGameResult =\n | {\n readonly success: true;\n readonly gameId: string;\n readonly playerId: string;\n }\n | {\n readonly success: false;\n readonly error: \"maxGamesReached\";\n };\n\nexport function createGame(userId: string, username: string): CreateGameResult {\n return doCreateGame(userId, username);\n}\n","import { z } from \"zod\";\nimport { drawCard as doDrawCard } from \"../../manager/actions/drawCard.js\";\n\nexport type DrawCardResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error:\n | \"invalidInput\"\n | \"gameNotFound\"\n | \"playerNotFound\"\n | \"invalidStatus\"\n | \"canPlayAtNotReached\"\n | \"handFull\"\n | \"drawPileEmpty\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport function drawCard(input: unknown): DrawCardResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doDrawCard(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { getClientStateAndClearEvents as doGetClientStateAndClearEvents } from \"../../manager/actions/getClientStateAndClearEvents.js\";\nimport type { ClientState } from \"../../manager/types/ClientState.js\";\n\nexport type GetClientStateAndClearEventsResult =\n | {\n readonly success: true;\n readonly state: ClientState;\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport function getClientStateAndClearEvents(\n input: unknown,\n): GetClientStateAndClearEventsResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doGetClientStateAndClearEvents(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { getEventsAndClearAcknowledged as doGetEventsAndClearAcknowledged } from \"../../manager/actions/getEventsAndClearAcknowledged.js\";\nimport type { GameEvent } from \"../../manager/types/GameEvent.js\";\n\nexport type GetEventsAndClearAcknowledgedResult =\n | {\n readonly success: true;\n readonly events: readonly GameEvent[];\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n lastReadId: z.string().nullable(),\n })\n .transform(\n ({ gameId, playerId, lastReadId }) =>\n [gameId, playerId, lastReadId] as const,\n );\n\nexport function getEventsAndClearAcknowledged(\n input: unknown,\n): GetEventsAndClearAcknowledgedResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doGetEventsAndClearAcknowledged(...parseResult.data);\n}\n","import { getJoinableGames as doGetJoinableGames } from \"../../manager/actions/getJoinableGames.js\";\n\nexport type GetJoinableGamesResult = {\n readonly games: readonly {\n readonly id: string;\n readonly numPlayers: number;\n }[];\n};\n\nexport function getJoinableGames(): GetJoinableGamesResult {\n return doGetJoinableGames();\n}\n","import { z } from \"zod\";\nimport { joinGame as doJoinGame } from \"../../manager/actions/joinGame.js\";\n\nexport type JoinGameResult =\n | {\n readonly success: true;\n readonly playerId: string;\n }\n | {\n readonly success: false;\n readonly error:\n | \"invalidInput\"\n | \"gameNotFound\"\n | \"invalidStatus\"\n | \"maxPlayersReached\"\n | \"alreadyInGame\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n })\n .transform(({ gameId }) => [gameId] as const);\n\nexport function joinGame(\n input: unknown,\n userId: string,\n username: string,\n): JoinGameResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doJoinGame(...parseResult.data, userId, username);\n}\n","import { z } from \"zod\";\nimport { leaveGame as doLeaveGame } from \"../../manager/actions/leaveGame.js\";\n\nexport type LeaveGameResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport function leaveGame(input: unknown): LeaveGameResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doLeaveGame(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { playCard as doPlayCard } from \"../../manager/actions/playCard.js\";\n\nexport type PlayCardResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error:\n | \"invalidInput\"\n | \"gameNotFound\"\n | \"playerNotFound\"\n | \"invalidStatus\"\n | \"canPlayAtNotReached\"\n | \"cardNotFound\"\n | \"cardNotPlayable\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n cardId: z.string(),\n isForOtherPlayerPile: z.boolean(),\n })\n .transform(\n ({ gameId, playerId, cardId, isForOtherPlayerPile }) =>\n [gameId, playerId, cardId, isForOtherPlayerPile] as const,\n );\n\nexport function playCard(input: unknown): PlayCardResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doPlayCard(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { reportNoPlayableCards as doReportNoPlayableCards } from \"../../manager/actions/reportNoPlayableCards.js\";\n\nexport type ReportNoPlayableCardsResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error:\n | \"invalidInput\"\n | \"gameNotFound\"\n | \"playerNotFound\"\n | \"invalidStatus\"\n | \"canPlayAtNotReached\"\n | \"alreadyReported\"\n | \"hasPlayableCard\"\n | \"canDraw\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport function reportNoPlayableCards(\n input: unknown,\n): ReportNoPlayableCardsResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doReportNoPlayableCards(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { sendChat as doSendChat } from \"../../manager/actions/sendChat.js\";\n\nexport type SendChatResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n text: z.string(),\n })\n .transform(({ gameId, playerId, text }) => [gameId, playerId, text] as const);\n\nexport function sendChat(input: unknown): SendChatResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doSendChat(...parseResult.data);\n}\n","import { z } from \"zod\";\nimport { startGame as doStartGame } from \"../../manager/actions/startGame.js\";\n\nexport type StartGameResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error:\n | \"invalidInput\"\n | \"gameNotFound\"\n | \"invalidStatus\"\n | \"playerNotFound\"\n | \"playerNotAdmin\"\n | \"minPlayersNotReached\";\n };\n\nconst inputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport function startGame(input: unknown): StartGameResult {\n const parseResult = inputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return doStartGame(...parseResult.data);\n}\n","import { createGame } from \"./actions/createGame.js\";\nimport { drawCard } from \"./actions/drawCard.js\";\nimport { getClientStateAndClearEvents } from \"./actions/getClientStateAndClearEvents.js\";\nimport { getEventsAndClearAcknowledged } from \"./actions/getEventsAndClearAcknowledged.js\";\nimport { getJoinableGames } from \"./actions/getJoinableGames.js\";\nimport { joinGame } from \"./actions/joinGame.js\";\nimport { leaveGame } from \"./actions/leaveGame.js\";\nimport { playCard } from \"./actions/playCard.js\";\nimport { reportNoPlayableCards } from \"./actions/reportNoPlayableCards.js\";\nimport { sendChat } from \"./actions/sendChat.js\";\nimport { startGame } from \"./actions/startGame.js\";\n\nexport const actions = [\n { path: \"/createGame\", func: createGame },\n { path: \"/drawCard\", func: drawCard },\n { path: \"/getClientStateAndClearEvents\", func: getClientStateAndClearEvents },\n {\n path: \"/getEventsAndClearAcknowledged\",\n func: getEventsAndClearAcknowledged,\n },\n { path: \"/getJoinableGames\", func: getJoinableGames },\n { path: \"/joinGame\", func: joinGame },\n { path: \"/leaveGame\", func: leaveGame },\n { path: \"/playCard\", func: playCard },\n { path: \"/reportNoPlayableCards\", func: reportNoPlayableCards },\n { path: \"/sendChat\", func: sendChat },\n { path: \"/startGame\", func: startGame },\n] as const;\n"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { S as createGame, b as drawCard, c as playCard, f as joinGame, g as getEventsAndClearAcknowledged, i as sendChat, m as getJoinableGames, n as startGame, o as reportNoPlayableCards, u as leaveGame, v as getClientStateAndClearEvents } from "../startGame-5InkAgEp.cjs";
2
+
3
+ //#region src/server/index.d.ts
4
+ declare const actions: readonly [{
5
+ readonly path: "/createGame";
6
+ readonly func: typeof createGame;
7
+ }, {
8
+ readonly path: "/drawCard";
9
+ readonly func: typeof drawCard;
10
+ }, {
11
+ readonly path: "/getClientStateAndClearEvents";
12
+ readonly func: typeof getClientStateAndClearEvents;
13
+ }, {
14
+ readonly path: "/getEventsAndClearAcknowledged";
15
+ readonly func: typeof getEventsAndClearAcknowledged;
16
+ }, {
17
+ readonly path: "/getJoinableGames";
18
+ readonly func: typeof getJoinableGames;
19
+ }, {
20
+ readonly path: "/joinGame";
21
+ readonly func: typeof joinGame;
22
+ }, {
23
+ readonly path: "/leaveGame";
24
+ readonly func: typeof leaveGame;
25
+ }, {
26
+ readonly path: "/playCard";
27
+ readonly func: typeof playCard;
28
+ }, {
29
+ readonly path: "/reportNoPlayableCards";
30
+ readonly func: typeof reportNoPlayableCards;
31
+ }, {
32
+ readonly path: "/sendChat";
33
+ readonly func: typeof sendChat;
34
+ }, {
35
+ readonly path: "/startGame";
36
+ readonly func: typeof startGame;
37
+ }];
38
+ //#endregion
39
+ export { actions };
40
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/server/index.ts"],"mappings":";;;cAYa,OAAA;EAAA"}
@@ -0,0 +1,40 @@
1
+ import { S as createGame, b as drawCard, c as playCard, f as joinGame, g as getEventsAndClearAcknowledged, i as sendChat, m as getJoinableGames, n as startGame, o as reportNoPlayableCards, u as leaveGame, v as getClientStateAndClearEvents } from "../startGame-ayp8a-Cl.mjs";
2
+
3
+ //#region src/server/index.d.ts
4
+ declare const actions: readonly [{
5
+ readonly path: "/createGame";
6
+ readonly func: typeof createGame;
7
+ }, {
8
+ readonly path: "/drawCard";
9
+ readonly func: typeof drawCard;
10
+ }, {
11
+ readonly path: "/getClientStateAndClearEvents";
12
+ readonly func: typeof getClientStateAndClearEvents;
13
+ }, {
14
+ readonly path: "/getEventsAndClearAcknowledged";
15
+ readonly func: typeof getEventsAndClearAcknowledged;
16
+ }, {
17
+ readonly path: "/getJoinableGames";
18
+ readonly func: typeof getJoinableGames;
19
+ }, {
20
+ readonly path: "/joinGame";
21
+ readonly func: typeof joinGame;
22
+ }, {
23
+ readonly path: "/leaveGame";
24
+ readonly func: typeof leaveGame;
25
+ }, {
26
+ readonly path: "/playCard";
27
+ readonly func: typeof playCard;
28
+ }, {
29
+ readonly path: "/reportNoPlayableCards";
30
+ readonly func: typeof reportNoPlayableCards;
31
+ }, {
32
+ readonly path: "/sendChat";
33
+ readonly func: typeof sendChat;
34
+ }, {
35
+ readonly path: "/startGame";
36
+ readonly func: typeof startGame;
37
+ }];
38
+ //#endregion
39
+ export { actions };
40
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/server/index.ts"],"mappings":";;;cAYa,OAAA;EAAA"}