@hellacardgames/speed 0.5.3 → 0.7.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 (39) hide show
  1. package/dist/client/index.cjs.map +1 -1
  2. package/dist/client/index.d.cts +2 -2
  3. package/dist/client/index.d.cts.map +1 -1
  4. package/dist/client/index.d.mts +2 -2
  5. package/dist/client/index.d.mts.map +1 -1
  6. package/dist/client/index.mjs.map +1 -1
  7. package/dist/index-BRtLpRz1.d.mts +125 -0
  8. package/dist/index-BRtLpRz1.d.mts.map +1 -0
  9. package/dist/index-BvZyhFek.d.cts +125 -0
  10. package/dist/index-BvZyhFek.d.cts.map +1 -0
  11. package/dist/{index-BilCO_4a.d.cts → index-xmcja9Bl.d.cts} +91 -60
  12. package/dist/index-xmcja9Bl.d.cts.map +1 -0
  13. package/dist/{index-BilCO_4a.d.mts → index-xmcja9Bl.d.mts} +91 -60
  14. package/dist/index-xmcja9Bl.d.mts.map +1 -0
  15. package/dist/manager/index.cjs +2 -12
  16. package/dist/manager/index.d.cts +2 -2
  17. package/dist/manager/index.d.mts +2 -2
  18. package/dist/manager/index.mjs +2 -2
  19. package/dist/manager-8x5AFyzq.mjs +790 -0
  20. package/dist/manager-8x5AFyzq.mjs.map +1 -0
  21. package/dist/manager-BxLMVu_o.cjs +795 -0
  22. package/dist/manager-BxLMVu_o.cjs.map +1 -0
  23. package/dist/server/index.cjs +141 -157
  24. package/dist/server/index.cjs.map +1 -1
  25. package/dist/server/index.d.cts +3 -3
  26. package/dist/server/index.d.mts +3 -3
  27. package/dist/server/index.mjs +141 -157
  28. package/dist/server/index.mjs.map +1 -1
  29. package/package.json +2 -2
  30. package/dist/index-BilCO_4a.d.cts.map +0 -1
  31. package/dist/index-BilCO_4a.d.mts.map +0 -1
  32. package/dist/index-DSPZZlhq.d.cts +0 -143
  33. package/dist/index-DSPZZlhq.d.cts.map +0 -1
  34. package/dist/index-S-oO1z9X.d.mts +0 -143
  35. package/dist/index-S-oO1z9X.d.mts.map +0 -1
  36. package/dist/manager-CPmezdJa.mjs +0 -834
  37. package/dist/manager-CPmezdJa.mjs.map +0 -1
  38. package/dist/manager-DErQ_XUq.cjs +0 -899
  39. package/dist/manager-DErQ_XUq.cjs.map +0 -1
@@ -1,40 +1,15 @@
1
- import { a as leaveGame$1, c as getEventsAndClearAcknowledged$1, d as createGame$1, i as playCard$1, l as getClientStateAndClearEvents$1, n as sendChat$1, o as joinGame$1, r as reportNoPlayableCards$1, s as getJoinableGames$1, t as startGame$1, u as drawCard$1 } from "../manager-CPmezdJa.mjs";
1
+ import { t as Manager } from "../manager-8x5AFyzq.mjs";
2
2
  import { z } from "zod";
3
- //#region src/server/actions/createGame.ts
4
- function createGame(userId, username) {
5
- return createGame$1(userId, username);
6
- }
7
- //#endregion
8
- //#region src/server/actions/drawCard.ts
9
- const inputSchema$8 = z.object({
3
+ //#region src/server/Server.ts
4
+ const drawCardInputSchema = z.object({
10
5
  gameId: z.string(),
11
6
  playerId: z.string()
12
7
  }).transform(({ gameId, playerId }) => [gameId, playerId]);
13
- function drawCard(input) {
14
- const parseResult = inputSchema$8.safeParse(input);
15
- if (!parseResult.success) return {
16
- success: false,
17
- error: "invalidInput"
18
- };
19
- return drawCard$1(...parseResult.data);
20
- }
21
- //#endregion
22
- //#region src/server/actions/getClientStateAndClearEvents.ts
23
- const inputSchema$7 = z.object({
8
+ const getClientStateAndClearEventsInputSchema = z.object({
24
9
  gameId: z.string(),
25
10
  playerId: z.string()
26
11
  }).transform(({ gameId, playerId }) => [gameId, playerId]);
27
- function getClientStateAndClearEvents(input) {
28
- const parseResult = inputSchema$7.safeParse(input);
29
- if (!parseResult.success) return {
30
- success: false,
31
- error: "invalidInput"
32
- };
33
- return getClientStateAndClearEvents$1(...parseResult.data);
34
- }
35
- //#endregion
36
- //#region src/server/actions/getEventsAndClearAcknowledged.ts
37
- const inputSchema$6 = z.object({
12
+ const getEventsAndClearAcknowledgedInputSchema = z.object({
38
13
  gameId: z.string(),
39
14
  playerId: z.string(),
40
15
  lastReadId: z.string().nullable()
@@ -43,47 +18,12 @@ const inputSchema$6 = z.object({
43
18
  playerId,
44
19
  lastReadId
45
20
  ]);
46
- function getEventsAndClearAcknowledged(input) {
47
- const parseResult = inputSchema$6.safeParse(input);
48
- if (!parseResult.success) return {
49
- success: false,
50
- error: "invalidInput"
51
- };
52
- return getEventsAndClearAcknowledged$1(...parseResult.data);
53
- }
54
- //#endregion
55
- //#region src/server/actions/getJoinableGames.ts
56
- function getJoinableGames() {
57
- return getJoinableGames$1();
58
- }
59
- //#endregion
60
- //#region src/server/actions/joinGame.ts
61
- const inputSchema$5 = z.object({ gameId: z.string() }).transform(({ gameId }) => [gameId]);
62
- function joinGame(input, userId, username) {
63
- const parseResult = inputSchema$5.safeParse(input);
64
- if (!parseResult.success) return {
65
- success: false,
66
- error: "invalidInput"
67
- };
68
- return joinGame$1(...parseResult.data, userId, username);
69
- }
70
- //#endregion
71
- //#region src/server/actions/leaveGame.ts
72
- const inputSchema$4 = z.object({
21
+ const joinGameInputSchema = z.object({ gameId: z.string() }).transform(({ gameId }) => [gameId]);
22
+ const leaveGameInputSchema = z.object({
73
23
  gameId: z.string(),
74
24
  playerId: z.string()
75
25
  }).transform(({ gameId, playerId }) => [gameId, playerId]);
76
- function leaveGame(input) {
77
- const parseResult = inputSchema$4.safeParse(input);
78
- if (!parseResult.success) return {
79
- success: false,
80
- error: "invalidInput"
81
- };
82
- return leaveGame$1(...parseResult.data);
83
- }
84
- //#endregion
85
- //#region src/server/actions/playCard.ts
86
- const inputSchema$3 = z.object({
26
+ const playCardInputSchema = z.object({
87
27
  gameId: z.string(),
88
28
  playerId: z.string(),
89
29
  cardId: z.string(),
@@ -94,31 +34,11 @@ const inputSchema$3 = z.object({
94
34
  cardId,
95
35
  isForOtherPlayerPile
96
36
  ]);
97
- function playCard(input) {
98
- const parseResult = inputSchema$3.safeParse(input);
99
- if (!parseResult.success) return {
100
- success: false,
101
- error: "invalidInput"
102
- };
103
- return playCard$1(...parseResult.data);
104
- }
105
- //#endregion
106
- //#region src/server/actions/reportNoPlayableCards.ts
107
- const inputSchema$2 = z.object({
37
+ const reportNoPlayableCardsInputSchema = z.object({
108
38
  gameId: z.string(),
109
39
  playerId: z.string()
110
40
  }).transform(({ gameId, playerId }) => [gameId, playerId]);
111
- function reportNoPlayableCards(input) {
112
- const parseResult = inputSchema$2.safeParse(input);
113
- if (!parseResult.success) return {
114
- success: false,
115
- error: "invalidInput"
116
- };
117
- return reportNoPlayableCards$1(...parseResult.data);
118
- }
119
- //#endregion
120
- //#region src/server/actions/sendChat.ts
121
- const inputSchema$1 = z.object({
41
+ const sendChatInputSchema = z.object({
122
42
  gameId: z.string(),
123
43
  playerId: z.string(),
124
44
  text: z.string()
@@ -127,77 +47,141 @@ const inputSchema$1 = z.object({
127
47
  playerId,
128
48
  text
129
49
  ]);
130
- function sendChat(input) {
131
- const parseResult = inputSchema$1.safeParse(input);
132
- if (!parseResult.success) return {
133
- success: false,
134
- error: "invalidInput"
135
- };
136
- return sendChat$1(...parseResult.data);
137
- }
138
- //#endregion
139
- //#region src/server/actions/startGame.ts
140
- const inputSchema = z.object({
50
+ const startGameInputSchema = z.object({
141
51
  gameId: z.string(),
142
52
  playerId: z.string()
143
53
  }).transform(({ gameId, playerId }) => [gameId, playerId]);
144
- function startGame(input) {
145
- const parseResult = inputSchema.safeParse(input);
146
- if (!parseResult.success) return {
147
- success: false,
148
- error: "invalidInput"
149
- };
150
- return startGame$1(...parseResult.data);
151
- }
152
- //#endregion
153
- //#region src/server/index.ts
154
- const actions = [
155
- {
156
- path: "/createGame",
157
- action: createGame
158
- },
159
- {
160
- path: "/drawCard",
161
- action: drawCard
162
- },
163
- {
164
- path: "/getClientStateAndClearEvents",
165
- action: getClientStateAndClearEvents
166
- },
167
- {
168
- path: "/getEventsAndClearAcknowledged",
169
- action: getEventsAndClearAcknowledged
170
- },
171
- {
172
- path: "/getJoinableGames",
173
- action: getJoinableGames
174
- },
175
- {
176
- path: "/joinGame",
177
- action: joinGame
178
- },
179
- {
180
- path: "/leaveGame",
181
- action: leaveGame
182
- },
183
- {
184
- path: "/playCard",
185
- action: playCard
186
- },
187
- {
188
- path: "/reportNoPlayableCards",
189
- action: reportNoPlayableCards
190
- },
191
- {
192
- path: "/sendChat",
193
- action: sendChat
194
- },
195
- {
196
- path: "/startGame",
197
- action: startGame
54
+ var Server = class {
55
+ manager;
56
+ actions = [
57
+ {
58
+ path: "/createGame",
59
+ action: this.createGame.bind(this)
60
+ },
61
+ {
62
+ path: "/drawCard",
63
+ action: this.drawCard.bind(this)
64
+ },
65
+ {
66
+ path: "/getClientStateAndClearEvents",
67
+ action: this.getClientStateAndClearEvents.bind(this)
68
+ },
69
+ {
70
+ path: "/getEventsAndClearAcknowledged",
71
+ action: this.getEventsAndClearAcknowledged.bind(this)
72
+ },
73
+ {
74
+ path: "/getJoinableGames",
75
+ action: this.getJoinableGames.bind(this)
76
+ },
77
+ {
78
+ path: "/joinGame",
79
+ action: this.joinGame.bind(this)
80
+ },
81
+ {
82
+ path: "/leaveGame",
83
+ action: this.leaveGame.bind(this)
84
+ },
85
+ {
86
+ path: "/playCard",
87
+ action: this.playCard.bind(this)
88
+ },
89
+ {
90
+ path: "/reportNoPlayableCards",
91
+ action: this.reportNoPlayableCards.bind(this)
92
+ },
93
+ {
94
+ path: "/sendChat",
95
+ action: this.sendChat.bind(this)
96
+ },
97
+ {
98
+ path: "/startGame",
99
+ action: this.startGame.bind(this)
100
+ }
101
+ ];
102
+ constructor(...args) {
103
+ this.manager = new Manager(...args);
104
+ }
105
+ createGame(userId, username) {
106
+ return this.manager.createGame(userId, username);
107
+ }
108
+ drawCard(input) {
109
+ const parseResult = drawCardInputSchema.safeParse(input);
110
+ if (!parseResult.success) return {
111
+ success: false,
112
+ error: "invalidInput"
113
+ };
114
+ return this.manager.drawCard(...parseResult.data);
115
+ }
116
+ getClientStateAndClearEvents(input) {
117
+ const parseResult = getClientStateAndClearEventsInputSchema.safeParse(input);
118
+ if (!parseResult.success) return {
119
+ success: false,
120
+ error: "invalidInput"
121
+ };
122
+ return this.manager.getClientStateAndClearEvents(...parseResult.data);
123
+ }
124
+ getEventsAndClearAcknowledged(input) {
125
+ const parseResult = getEventsAndClearAcknowledgedInputSchema.safeParse(input);
126
+ if (!parseResult.success) return {
127
+ success: false,
128
+ error: "invalidInput"
129
+ };
130
+ return this.manager.getEventsAndClearAcknowledged(...parseResult.data);
131
+ }
132
+ getJoinableGames() {
133
+ return this.manager.getJoinableGames();
134
+ }
135
+ joinGame(input, userId, username) {
136
+ const parseResult = joinGameInputSchema.safeParse(input);
137
+ if (!parseResult.success) return {
138
+ success: false,
139
+ error: "invalidInput"
140
+ };
141
+ return this.manager.joinGame(...parseResult.data, userId, username);
142
+ }
143
+ leaveGame(input) {
144
+ const parseResult = leaveGameInputSchema.safeParse(input);
145
+ if (!parseResult.success) return {
146
+ success: false,
147
+ error: "invalidInput"
148
+ };
149
+ return this.manager.leaveGame(...parseResult.data);
150
+ }
151
+ playCard(input) {
152
+ const parseResult = playCardInputSchema.safeParse(input);
153
+ if (!parseResult.success) return {
154
+ success: false,
155
+ error: "invalidInput"
156
+ };
157
+ return this.manager.playCard(...parseResult.data);
158
+ }
159
+ reportNoPlayableCards(input) {
160
+ const parseResult = reportNoPlayableCardsInputSchema.safeParse(input);
161
+ if (!parseResult.success) return {
162
+ success: false,
163
+ error: "invalidInput"
164
+ };
165
+ return this.manager.reportNoPlayableCards(...parseResult.data);
166
+ }
167
+ sendChat(input) {
168
+ const parseResult = sendChatInputSchema.safeParse(input);
169
+ if (!parseResult.success) return {
170
+ success: false,
171
+ error: "invalidInput"
172
+ };
173
+ return this.manager.sendChat(...parseResult.data);
174
+ }
175
+ startGame(input) {
176
+ const parseResult = startGameInputSchema.safeParse(input);
177
+ if (!parseResult.success) return {
178
+ success: false,
179
+ error: "invalidInput"
180
+ };
181
+ return this.manager.startGame(...parseResult.data);
198
182
  }
199
- ];
183
+ };
200
184
  //#endregion
201
- export { actions };
185
+ export { Server };
202
186
 
203
187
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["doCreateGame","inputSchema","doDrawCard","inputSchema","doGetClientStateAndClearEvents","inputSchema","doGetEventsAndClearAcknowledged","doGetJoinableGames","inputSchema","doJoinGame","inputSchema","doLeaveGame","inputSchema","doPlayCard","inputSchema","doReportNoPlayableCards","inputSchema","doSendChat","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/index.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/index.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/index.js\";\nimport type { ClientState } from \"../../manager/index.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/index.js\";\nimport type { GameEvent } from \"../../manager/index.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/index.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/index.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/index.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/index.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/index.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/index.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/index.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 type { CreateGameResult } from \"./actions/createGame.js\";\nexport type { DrawCardResult } from \"./actions/drawCard.js\";\nexport type { GetClientStateAndClearEventsResult } from \"./actions/getClientStateAndClearEvents.js\";\nexport type { GetEventsAndClearAcknowledgedResult } from \"./actions/getEventsAndClearAcknowledged.js\";\nexport type { GetJoinableGamesResult } from \"./actions/getJoinableGames.js\";\nexport type { JoinGameResult } from \"./actions/joinGame.js\";\nexport type { LeaveGameResult } from \"./actions/leaveGame.js\";\nexport type { PlayCardResult } from \"./actions/playCard.js\";\nexport type { ReportNoPlayableCardsResult } from \"./actions/reportNoPlayableCards.js\";\nexport type { SendChatResult } from \"./actions/sendChat.js\";\nexport type { StartGameResult } from \"./actions/startGame.js\";\n\nexport type {\n Card,\n ChatMessage,\n ClientState,\n GameEvent,\n} from \"../manager/index.js\";\n\nexport const actions = [\n { path: \"/createGame\", action: createGame },\n { path: \"/drawCard\", action: drawCard },\n {\n path: \"/getClientStateAndClearEvents\",\n action: getClientStateAndClearEvents,\n },\n {\n path: \"/getEventsAndClearAcknowledged\",\n action: getEventsAndClearAcknowledged,\n },\n { path: \"/getJoinableGames\", action: getJoinableGames },\n { path: \"/joinGame\", action: joinGame },\n { path: \"/leaveGame\", action: leaveGame },\n { path: \"/playCard\", action: playCard },\n { path: \"/reportNoPlayableCards\", action: reportNoPlayableCards },\n { path: \"/sendChat\", action: sendChat },\n { path: \"/startGame\", action: startGame },\n] as const;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/server/Server.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Manager } from \"../manager/index.js\";\nimport type { ClientState, GameEvent } from \"../manager/index.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 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\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\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\nexport type GetJoinableGamesResult = {\n readonly games: readonly {\n readonly id: string;\n readonly numPlayers: number;\n }[];\n};\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\nexport type LeaveGameResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\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\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\nexport type SendChatResult =\n | {\n readonly success: true;\n }\n | {\n readonly success: false;\n readonly error: \"invalidInput\" | \"gameNotFound\" | \"playerNotFound\";\n };\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 drawCardInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nconst getClientStateAndClearEventsInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nconst getEventsAndClearAcknowledgedInputSchema = 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\nconst joinGameInputSchema = z\n .object({\n gameId: z.string(),\n })\n .transform(({ gameId }) => [gameId] as const);\n\nconst leaveGameInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nconst playCardInputSchema = 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\nconst reportNoPlayableCardsInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nconst sendChatInputSchema = 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\nconst startGameInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\nexport class Server {\n private readonly manager: Manager;\n\n readonly actions = [\n { path: \"/createGame\", action: this.createGame.bind(this) },\n { path: \"/drawCard\", action: this.drawCard.bind(this) },\n {\n path: \"/getClientStateAndClearEvents\",\n action: this.getClientStateAndClearEvents.bind(this),\n },\n {\n path: \"/getEventsAndClearAcknowledged\",\n action: this.getEventsAndClearAcknowledged.bind(this),\n },\n { path: \"/getJoinableGames\", action: this.getJoinableGames.bind(this) },\n { path: \"/joinGame\", action: this.joinGame.bind(this) },\n { path: \"/leaveGame\", action: this.leaveGame.bind(this) },\n { path: \"/playCard\", action: this.playCard.bind(this) },\n {\n path: \"/reportNoPlayableCards\",\n action: this.reportNoPlayableCards.bind(this),\n },\n { path: \"/sendChat\", action: this.sendChat.bind(this) },\n { path: \"/startGame\", action: this.startGame.bind(this) },\n ] as const;\n\n constructor(...args: ConstructorParameters<typeof Manager>) {\n this.manager = new Manager(...args);\n }\n\n private createGame(userId: string, username: string): CreateGameResult {\n return this.manager.createGame(userId, username);\n }\n\n private drawCard(input: unknown): DrawCardResult {\n const parseResult = drawCardInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.drawCard(...parseResult.data);\n }\n\n private getClientStateAndClearEvents(\n input: unknown,\n ): GetClientStateAndClearEventsResult {\n const parseResult =\n getClientStateAndClearEventsInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.getClientStateAndClearEvents(...parseResult.data);\n }\n\n private getEventsAndClearAcknowledged(\n input: unknown,\n ): GetEventsAndClearAcknowledgedResult {\n const parseResult =\n getEventsAndClearAcknowledgedInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.getEventsAndClearAcknowledged(...parseResult.data);\n }\n\n private getJoinableGames(): GetJoinableGamesResult {\n return this.manager.getJoinableGames();\n }\n\n private joinGame(\n input: unknown,\n userId: string,\n username: string,\n ): JoinGameResult {\n const parseResult = joinGameInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.joinGame(...parseResult.data, userId, username);\n }\n\n private leaveGame(input: unknown): LeaveGameResult {\n const parseResult = leaveGameInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.leaveGame(...parseResult.data);\n }\n\n private playCard(input: unknown): PlayCardResult {\n const parseResult = playCardInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.playCard(...parseResult.data);\n }\n\n private reportNoPlayableCards(input: unknown): ReportNoPlayableCardsResult {\n const parseResult = reportNoPlayableCardsInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.reportNoPlayableCards(...parseResult.data);\n }\n\n private sendChat(input: unknown): SendChatResult {\n const parseResult = sendChatInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.sendChat(...parseResult.data);\n }\n\n private startGame(input: unknown): StartGameResult {\n const parseResult = startGameInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" };\n }\n return this.manager.startGame(...parseResult.data);\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hellacardgames/speed",
3
- "version": "0.5.3",
3
+ "version": "0.7.0",
4
4
  "description": "A TypeScript library implementing the Speed card game.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -86,7 +86,7 @@
86
86
  "vitest": "^4.1.9"
87
87
  },
88
88
  "dependencies": {
89
- "@hellacardgames/lib": "^0.5.2",
89
+ "@hellacardgames/lib": "^0.6.1",
90
90
  "zod": "^4.4.3"
91
91
  }
92
92
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BilCO_4a.d.cts","names":[],"sources":["../src/manager/actions/createGame.ts","../src/manager/actions/drawCard.ts","../src/manager/types/Card.ts","../src/manager/types/ChatMessage.ts","../src/manager/types/ClientState.ts","../src/manager/actions/getClientStateAndClearEvents.ts","../src/manager/types/GameEvent.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;WAEU;WACA;WACA;;WAGA;WACA;;iBAGC,WAAW,gBAAgB,mBAAmB;;;KCXzD;WAEU;;WAGA;WACA;;iBASC,SAAS,gBAAgB,mBAAmB;;;KCpBhD;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;;;;KCjBzB;WAEU;WACA,OAAO;;WAGP;WACA;;iBAGC,6BACd,gBACA,mBACC;;;KCbS;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;;;;KCxFV;WAEU;WACA,iBAAiB;;WAGjB;WACA;;iBAGC,8BACd,gBACA,kBACA,4BACC;;;KCdE;WACM;WACA;aACE;aACA;;;iBAIG,oBAAoB;;;KCN/B;WAEU;WACA;;WAGA;WACA;;iBAOC,SACd,gBACA,gBACA,mBACC;;;KClBE;WAEU;;WAGA;WACA;;iBAGC,UAAU,gBAAgB,mBAAmB;;;KCPxD;WAEU;;WAGA;WACA;;iBASC,SACd,gBACA,kBACA,gBACA,gCACC;;;KCjBE;WAEU;;WAGA;WACA;;iBAUC,sBACd,gBACA,mBACC;;;KCzBE;WAEU;;WAGA;WACA;;iBAGC,SACd,gBACA,kBACA,eACC;;;KCLE;WAEU;;WAGA;WACA;;iBAQC,UAAU,gBAAgB,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BilCO_4a.d.mts","names":[],"sources":["../src/manager/actions/createGame.ts","../src/manager/actions/drawCard.ts","../src/manager/types/Card.ts","../src/manager/types/ChatMessage.ts","../src/manager/types/ClientState.ts","../src/manager/actions/getClientStateAndClearEvents.ts","../src/manager/types/GameEvent.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;WAEU;WACA;WACA;;WAGA;WACA;;iBAGC,WAAW,gBAAgB,mBAAmB;;;KCXzD;WAEU;;WAGA;WACA;;iBASC,SAAS,gBAAgB,mBAAmB;;;KCpBhD;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;;;;KCjBzB;WAEU;WACA,OAAO;;WAGP;WACA;;iBAGC,6BACd,gBACA,mBACC;;;KCbS;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;;;;KCxFV;WAEU;WACA,iBAAiB;;WAGjB;WACA;;iBAGC,8BACd,gBACA,kBACA,4BACC;;;KCdE;WACM;WACA;aACE;aACA;;;iBAIG,oBAAoB;;;KCN/B;WAEU;WACA;;WAGA;WACA;;iBAOC,SACd,gBACA,gBACA,mBACC;;;KClBE;WAEU;;WAGA;WACA;;iBAGC,UAAU,gBAAgB,mBAAmB;;;KCPxD;WAEU;;WAGA;WACA;;iBASC,SACd,gBACA,kBACA,gBACA,gCACC;;;KCjBE;WAEU;;WAGA;WACA;;iBAUC,sBACd,gBACA,mBACC;;;KCzBE;WAEU;;WAGA;WACA;;iBAGC,SACd,gBACA,kBACA,eACC;;;KCLE;WAEU;;WAGA;WACA;;iBAQC,UAAU,gBAAgB,mBAAmB"}
@@ -1,143 +0,0 @@
1
- import { d as ClientState, l as GameEvent } from "./index-BilCO_4a.cjs";
2
- //#region src/server/actions/createGame.d.ts
3
- type CreateGameResult = {
4
- readonly success: true;
5
- readonly gameId: string;
6
- readonly playerId: string;
7
- } | {
8
- readonly success: false;
9
- readonly error: "maxGamesReached";
10
- };
11
- declare function createGame(userId: string, username: string): CreateGameResult;
12
- //#endregion
13
- //#region src/server/actions/drawCard.d.ts
14
- type DrawCardResult = {
15
- readonly success: true;
16
- } | {
17
- readonly success: false;
18
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
19
- };
20
- declare function drawCard(input: unknown): DrawCardResult;
21
- //#endregion
22
- //#region src/server/actions/getClientStateAndClearEvents.d.ts
23
- type GetClientStateAndClearEventsResult = {
24
- readonly success: true;
25
- readonly state: ClientState;
26
- } | {
27
- readonly success: false;
28
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
29
- };
30
- declare function getClientStateAndClearEvents(input: unknown): GetClientStateAndClearEventsResult;
31
- //#endregion
32
- //#region src/server/actions/getEventsAndClearAcknowledged.d.ts
33
- type GetEventsAndClearAcknowledgedResult = {
34
- readonly success: true;
35
- readonly events: readonly GameEvent[];
36
- } | {
37
- readonly success: false;
38
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
39
- };
40
- declare function getEventsAndClearAcknowledged(input: unknown): GetEventsAndClearAcknowledgedResult;
41
- //#endregion
42
- //#region src/server/actions/getJoinableGames.d.ts
43
- type GetJoinableGamesResult = {
44
- readonly games: readonly {
45
- readonly id: string;
46
- readonly numPlayers: number;
47
- }[];
48
- };
49
- declare function getJoinableGames(): GetJoinableGamesResult;
50
- //#endregion
51
- //#region src/server/actions/joinGame.d.ts
52
- type JoinGameResult = {
53
- readonly success: true;
54
- readonly playerId: string;
55
- } | {
56
- readonly success: false;
57
- readonly error: "invalidInput" | "gameNotFound" | "invalidStatus" | "maxPlayersReached" | "alreadyInGame";
58
- };
59
- declare function joinGame(input: unknown, userId: string, username: string): JoinGameResult;
60
- //#endregion
61
- //#region src/server/actions/leaveGame.d.ts
62
- type LeaveGameResult = {
63
- readonly success: true;
64
- } | {
65
- readonly success: false;
66
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
67
- };
68
- declare function leaveGame(input: unknown): LeaveGameResult;
69
- //#endregion
70
- //#region src/server/actions/playCard.d.ts
71
- type PlayCardResult = {
72
- readonly success: true;
73
- } | {
74
- readonly success: false;
75
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
76
- };
77
- declare function playCard(input: unknown): PlayCardResult;
78
- //#endregion
79
- //#region src/server/actions/reportNoPlayableCards.d.ts
80
- type ReportNoPlayableCardsResult = {
81
- readonly success: true;
82
- } | {
83
- readonly success: false;
84
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
85
- };
86
- declare function reportNoPlayableCards(input: unknown): ReportNoPlayableCardsResult;
87
- //#endregion
88
- //#region src/server/actions/sendChat.d.ts
89
- type SendChatResult = {
90
- readonly success: true;
91
- } | {
92
- readonly success: false;
93
- readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
94
- };
95
- declare function sendChat(input: unknown): SendChatResult;
96
- //#endregion
97
- //#region src/server/actions/startGame.d.ts
98
- type StartGameResult = {
99
- readonly success: true;
100
- } | {
101
- readonly success: false;
102
- readonly error: "invalidInput" | "gameNotFound" | "invalidStatus" | "playerNotFound" | "playerNotAdmin" | "minPlayersNotReached";
103
- };
104
- declare function startGame(input: unknown): StartGameResult;
105
- //#endregion
106
- //#region src/server/index.d.ts
107
- declare const actions: readonly [{
108
- readonly path: "/createGame";
109
- readonly action: typeof createGame;
110
- }, {
111
- readonly path: "/drawCard";
112
- readonly action: typeof drawCard;
113
- }, {
114
- readonly path: "/getClientStateAndClearEvents";
115
- readonly action: typeof getClientStateAndClearEvents;
116
- }, {
117
- readonly path: "/getEventsAndClearAcknowledged";
118
- readonly action: typeof getEventsAndClearAcknowledged;
119
- }, {
120
- readonly path: "/getJoinableGames";
121
- readonly action: typeof getJoinableGames;
122
- }, {
123
- readonly path: "/joinGame";
124
- readonly action: typeof joinGame;
125
- }, {
126
- readonly path: "/leaveGame";
127
- readonly action: typeof leaveGame;
128
- }, {
129
- readonly path: "/playCard";
130
- readonly action: typeof playCard;
131
- }, {
132
- readonly path: "/reportNoPlayableCards";
133
- readonly action: typeof reportNoPlayableCards;
134
- }, {
135
- readonly path: "/sendChat";
136
- readonly action: typeof sendChat;
137
- }, {
138
- readonly path: "/startGame";
139
- readonly action: typeof startGame;
140
- }];
141
- //#endregion
142
- export { PlayCardResult as a, GetJoinableGamesResult as c, DrawCardResult as d, CreateGameResult as f, ReportNoPlayableCardsResult as i, GetEventsAndClearAcknowledgedResult as l, StartGameResult as n, LeaveGameResult as o, SendChatResult as r, JoinGameResult as s, actions as t, GetClientStateAndClearEventsResult as u };
143
- //# sourceMappingURL=index-DSPZZlhq.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DSPZZlhq.d.cts","names":[],"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"],"mappings":";;KAEY;WAEG;WACA;WACA;;WAGA;WACA;;iBAGC,WAAW,gBAAgB,mBAAmB;;;KCVlD;WAEG;;WAGA;WACA;;iBAiBC,SAAS,iBAAiB;;;KCtB9B;WAEG;WACA,OAAO;;WAGP;WACA;;iBAUC,6BACd,iBACC;;;KCnBS;WAEG;WACA,iBAAiB;;WAGjB;WACA;;iBAcC,8BACd,iBACC;;;KCzBS;WACD;aACE;aACA;;;iBAIG,oBAAoB;;;KCNxB;WAEG;WACA;;WAGA;WACA;;iBAcC,SACd,gBACA,gBACA,mBACC;;;KCzBS;WAEG;;WAGA;WACA;;iBAUC,UAAU,iBAAiB;;;KChB/B;WAEG;;WAGA;WACA;;iBAsBC,SAAS,iBAAiB;;;KC5B9B;WAEG;;WAGA;WACA;;iBAkBC,sBACd,iBACC;;;KC1BS;WAEG;;WAGA;WACA;;iBAWC,SAAS,iBAAiB;;;KCjB9B;WAEG;;WAGA;WACA;;iBAgBC,UAAU,iBAAiB;;;cCM9B"}