@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.
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +2 -3
- package/dist/client/index.d.cts.map +1 -1
- package/dist/client/index.d.mts +2 -3
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs.map +1 -1
- package/dist/{startGame-5InkAgEp.d.cts → index-FveApXzq.d.cts} +52 -36
- package/dist/index-FveApXzq.d.cts.map +1 -0
- package/dist/{startGame-ayp8a-Cl.d.mts → index-J8s2QklC.d.mts} +52 -36
- package/dist/index-J8s2QklC.d.mts.map +1 -0
- package/dist/index-YAYbNr-s.d.cts +200 -0
- package/dist/index-YAYbNr-s.d.cts.map +1 -0
- package/dist/index-YAYbNr-s.d.mts +200 -0
- package/dist/index-YAYbNr-s.d.mts.map +1 -0
- package/dist/manager/index.cjs +2 -32
- package/dist/manager/index.d.cts +2 -109
- package/dist/manager/index.d.mts +2 -109
- package/dist/manager/index.mjs +2 -22
- package/dist/manager-BOymBQ4E.mjs +817 -0
- package/dist/manager-BOymBQ4E.mjs.map +1 -0
- package/dist/manager-BpKvQbcp.cjs +822 -0
- package/dist/manager-BpKvQbcp.cjs.map +1 -0
- package/dist/server/index.cjs +138 -157
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +3 -40
- package/dist/server/index.d.mts +3 -40
- package/dist/server/index.mjs +138 -157
- package/dist/server/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/GameEvent-DDQ4jXxt.d.cts +0 -111
- package/dist/GameEvent-DDQ4jXxt.d.cts.map +0 -1
- package/dist/GameEvent-DDQ4jXxt.d.mts +0 -111
- package/dist/GameEvent-DDQ4jXxt.d.mts.map +0 -1
- package/dist/manager/index.cjs.map +0 -1
- package/dist/manager/index.d.cts.map +0 -1
- package/dist/manager/index.d.mts.map +0 -1
- package/dist/manager/index.mjs.map +0 -1
- package/dist/server/index.d.cts.map +0 -1
- package/dist/server/index.d.mts.map +0 -1
- package/dist/startGame-5InkAgEp.d.cts.map +0 -1
- package/dist/startGame-BC9XfFzG.mjs +0 -815
- package/dist/startGame-BC9XfFzG.mjs.map +0 -1
- package/dist/startGame-Bhk__XWk.cjs +0 -898
- package/dist/startGame-Bhk__XWk.cjs.map +0 -1
- package/dist/startGame-ayp8a-Cl.d.mts.map +0 -1
package/dist/server/index.mjs
CHANGED
|
@@ -1,40 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as Manager } from "../manager-BOymBQ4E.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
//#region src/server/
|
|
4
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,138 @@ const inputSchema$1 = z.object({
|
|
|
127
47
|
playerId,
|
|
128
48
|
text
|
|
129
49
|
]);
|
|
130
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
{
|
|
196
|
-
|
|
197
|
-
|
|
54
|
+
var Server = class {
|
|
55
|
+
manager = new 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
|
+
createGame(userId, username) {
|
|
103
|
+
return this.manager.createGame(userId, username);
|
|
104
|
+
}
|
|
105
|
+
drawCard(input) {
|
|
106
|
+
const parseResult = drawCardInputSchema.safeParse(input);
|
|
107
|
+
if (!parseResult.success) return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: "invalidInput"
|
|
110
|
+
};
|
|
111
|
+
return this.manager.drawCard(...parseResult.data);
|
|
112
|
+
}
|
|
113
|
+
getClientStateAndClearEvents(input) {
|
|
114
|
+
const parseResult = getClientStateAndClearEventsInputSchema.safeParse(input);
|
|
115
|
+
if (!parseResult.success) return {
|
|
116
|
+
success: false,
|
|
117
|
+
error: "invalidInput"
|
|
118
|
+
};
|
|
119
|
+
return this.manager.getClientStateAndClearEvents(...parseResult.data);
|
|
120
|
+
}
|
|
121
|
+
getEventsAndClearAcknowledged(input) {
|
|
122
|
+
const parseResult = getEventsAndClearAcknowledgedInputSchema.safeParse(input);
|
|
123
|
+
if (!parseResult.success) return {
|
|
124
|
+
success: false,
|
|
125
|
+
error: "invalidInput"
|
|
126
|
+
};
|
|
127
|
+
return this.manager.getEventsAndClearAcknowledged(...parseResult.data);
|
|
128
|
+
}
|
|
129
|
+
getJoinableGames() {
|
|
130
|
+
return this.manager.getJoinableGames();
|
|
131
|
+
}
|
|
132
|
+
joinGame(input, userId, username) {
|
|
133
|
+
const parseResult = joinGameInputSchema.safeParse(input);
|
|
134
|
+
if (!parseResult.success) return {
|
|
135
|
+
success: false,
|
|
136
|
+
error: "invalidInput"
|
|
137
|
+
};
|
|
138
|
+
return this.manager.joinGame(...parseResult.data, userId, username);
|
|
139
|
+
}
|
|
140
|
+
leaveGame(input) {
|
|
141
|
+
const parseResult = leaveGameInputSchema.safeParse(input);
|
|
142
|
+
if (!parseResult.success) return {
|
|
143
|
+
success: false,
|
|
144
|
+
error: "invalidInput"
|
|
145
|
+
};
|
|
146
|
+
return this.manager.leaveGame(...parseResult.data);
|
|
147
|
+
}
|
|
148
|
+
playCard(input) {
|
|
149
|
+
const parseResult = playCardInputSchema.safeParse(input);
|
|
150
|
+
if (!parseResult.success) return {
|
|
151
|
+
success: false,
|
|
152
|
+
error: "invalidInput"
|
|
153
|
+
};
|
|
154
|
+
return this.manager.playCard(...parseResult.data);
|
|
155
|
+
}
|
|
156
|
+
reportNoPlayableCards(input) {
|
|
157
|
+
const parseResult = reportNoPlayableCardsInputSchema.safeParse(input);
|
|
158
|
+
if (!parseResult.success) return {
|
|
159
|
+
success: false,
|
|
160
|
+
error: "invalidInput"
|
|
161
|
+
};
|
|
162
|
+
return this.manager.reportNoPlayableCards(...parseResult.data);
|
|
163
|
+
}
|
|
164
|
+
sendChat(input) {
|
|
165
|
+
const parseResult = sendChatInputSchema.safeParse(input);
|
|
166
|
+
if (!parseResult.success) return {
|
|
167
|
+
success: false,
|
|
168
|
+
error: "invalidInput"
|
|
169
|
+
};
|
|
170
|
+
return this.manager.sendChat(...parseResult.data);
|
|
171
|
+
}
|
|
172
|
+
startGame(input) {
|
|
173
|
+
const parseResult = startGameInputSchema.safeParse(input);
|
|
174
|
+
if (!parseResult.success) return {
|
|
175
|
+
success: false,
|
|
176
|
+
error: "invalidInput"
|
|
177
|
+
};
|
|
178
|
+
return this.manager.startGame(...parseResult.data);
|
|
198
179
|
}
|
|
199
|
-
|
|
180
|
+
};
|
|
200
181
|
//#endregion
|
|
201
|
-
export {
|
|
182
|
+
export { Server };
|
|
202
183
|
|
|
203
184
|
//# 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/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\", 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 = new 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 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,111 +0,0 @@
|
|
|
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
|
-
export { Card as i, ClientState as n, ChatMessage as r, GameEvent as t };
|
|
111
|
-
//# sourceMappingURL=GameEvent-DDQ4jXxt.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GameEvent-DDQ4jXxt.d.cts","names":[],"sources":["../src/manager/types/Card.ts","../src/manager/types/ChatMessage.ts","../src/manager/types/ClientState.ts","../src/manager/types/GameEvent.ts"],"mappings":";KAAY,IAAA;EAAA,SACD,EAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;;;KCHC,WAAA;EAAA,SACD,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA;AAAA;;;KCAC,WAAA;EAAA,SACD,MAAA;EAAA,SACA,MAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA,WAAkB,MAAA;EAAA,SAClB,SAAA;EAAA,SACA,YAAA,WAAuB,WAAA;EAAA,SACvB,IAAA,WAAe,IAAA;EAAA,SACf,SAAA;AAAA;AAAA,KAGN,MAAA;EAAA,SACM,QAAA;EAAA,SACA,QAAA;EAAA,SACA,YAAA;EAAA,SACA,YAAA;EAAA,SACA,iBAAA,EAAmB,IAAI;AAAA;;;KCjBtB,SAAA;EAAA,SAEG,IAAA;EAAA,SACA,EAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,oBAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,OAAA,EAAS,WAAA;AAAA;EAAA,SAGT,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,KAAA,WAAgB,IAAA;AAAA;EAAA,SAGhB,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA"}
|
|
@@ -1,111 +0,0 @@
|
|
|
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
|
-
export { Card as i, ClientState as n, ChatMessage as r, GameEvent as t };
|
|
111
|
-
//# sourceMappingURL=GameEvent-DDQ4jXxt.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GameEvent-DDQ4jXxt.d.mts","names":[],"sources":["../src/manager/types/Card.ts","../src/manager/types/ChatMessage.ts","../src/manager/types/ClientState.ts","../src/manager/types/GameEvent.ts"],"mappings":";KAAY,IAAA;EAAA,SACD,EAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;;;KCHC,WAAA;EAAA,SACD,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA;AAAA;;;KCAC,WAAA;EAAA,SACD,MAAA;EAAA,SACA,MAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA,WAAkB,MAAA;EAAA,SAClB,SAAA;EAAA,SACA,YAAA,WAAuB,WAAA;EAAA,SACvB,IAAA,WAAe,IAAA;EAAA,SACf,SAAA;AAAA;AAAA,KAGN,MAAA;EAAA,SACM,QAAA;EAAA,SACA,QAAA;EAAA,SACA,YAAA;EAAA,SACA,YAAA;EAAA,SACA,iBAAA,EAAmB,IAAI;AAAA;;;KCjBtB,SAAA;EAAA,SAEG,IAAA;EAAA,SACA,EAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,oBAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,OAAA,EAAS,WAAA;AAAA;EAAA,SAGT,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,KAAA,WAAgB,IAAA;AAAA;EAAA,SAGhB,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,IAAA;AAAA;EAAA,SAGN,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
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\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;;;ACLA,IDO4B,SCP5B,CAAA,CAAS,MAAM"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|