@hellacardgames/speed 0.8.0 → 0.9.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/ClientState-Dx8UvhMt.d.cts +111 -0
- package/dist/ClientState-Dx8UvhMt.d.cts.map +1 -0
- package/dist/ClientState-Dx8UvhMt.d.mts +111 -0
- package/dist/ClientState-Dx8UvhMt.d.mts.map +1 -0
- package/dist/client/index.cjs +60 -10
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +89 -14
- package/dist/client/index.d.cts.map +1 -1
- package/dist/client/index.d.mts +89 -14
- package/dist/client/index.d.mts.map +1 -1
- package/dist/client/index.mjs +60 -10
- package/dist/client/index.mjs.map +1 -1
- package/dist/manager/index.cjs +2 -2
- package/dist/manager/index.d.cts +140 -2
- package/dist/manager/index.d.cts.map +1 -0
- package/dist/manager/index.d.mts +140 -2
- package/dist/manager/index.d.mts.map +1 -0
- package/dist/manager/index.mjs +2 -2
- package/dist/manager-B7gHPSPL.cjs +823 -0
- package/dist/manager-B7gHPSPL.cjs.map +1 -0
- package/dist/manager-C6kRM9IW.mjs +818 -0
- package/dist/manager-C6kRM9IW.mjs.map +1 -0
- package/dist/server/index.cjs +45 -165
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +149 -3
- package/dist/server/index.d.cts.map +1 -0
- package/dist/server/index.d.mts +149 -3
- package/dist/server/index.d.mts.map +1 -0
- package/dist/server/index.mjs +45 -165
- package/dist/server/index.mjs.map +1 -1
- package/package.json +2 -2
- package/dist/index-C5bT1Zzd.d.mts +0 -125
- package/dist/index-C5bT1Zzd.d.mts.map +0 -1
- package/dist/index-NySusLtY.d.cts +0 -125
- package/dist/index-NySusLtY.d.cts.map +0 -1
- package/dist/index-uaOvIhKT.d.cts +0 -247
- package/dist/index-uaOvIhKT.d.cts.map +0 -1
- package/dist/index-uaOvIhKT.d.mts +0 -247
- package/dist/index-uaOvIhKT.d.mts.map +0 -1
- package/dist/manager-BAxBCUOk.mjs +0 -790
- package/dist/manager-BAxBCUOk.mjs.map +0 -1
- package/dist/manager-C9oZYA47.cjs +0 -795
- package/dist/manager-C9oZYA47.cjs.map +0 -1
package/dist/server/index.d.mts
CHANGED
|
@@ -1,3 +1,149 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { n as GameEvent, t as ClientState } from "../ClientState-Dx8UvhMt.mjs";
|
|
2
|
+
//#region src/server/createServer.d.ts
|
|
3
|
+
declare const createServer: (logKey: string, maxGames: number, watchdogIntervalMs: number) => {
|
|
4
|
+
readonly actions: readonly [{
|
|
5
|
+
readonly path: "/createGame";
|
|
6
|
+
readonly action: (userId: string, username: string) => {
|
|
7
|
+
readonly success: true;
|
|
8
|
+
readonly gameId: string;
|
|
9
|
+
readonly playerId: string;
|
|
10
|
+
} | {
|
|
11
|
+
readonly success: false;
|
|
12
|
+
readonly error: "maxGamesReached";
|
|
13
|
+
};
|
|
14
|
+
}, {
|
|
15
|
+
readonly path: "/getClientStateAndClearEvents";
|
|
16
|
+
readonly action: (input: unknown) => {
|
|
17
|
+
readonly success: false;
|
|
18
|
+
readonly error: "invalidInput";
|
|
19
|
+
} | {
|
|
20
|
+
readonly success: true;
|
|
21
|
+
readonly state: ClientState;
|
|
22
|
+
} | {
|
|
23
|
+
readonly success: false;
|
|
24
|
+
readonly error: "playerNotFound" | "gameNotFound";
|
|
25
|
+
};
|
|
26
|
+
}, {
|
|
27
|
+
readonly path: "/getEventsAndClearAcknowledged";
|
|
28
|
+
readonly action: (input: unknown) => {
|
|
29
|
+
readonly success: false;
|
|
30
|
+
readonly error: "invalidInput";
|
|
31
|
+
} | {
|
|
32
|
+
readonly success: true;
|
|
33
|
+
readonly events: readonly GameEvent[];
|
|
34
|
+
} | {
|
|
35
|
+
readonly success: false;
|
|
36
|
+
readonly error: "playerNotFound" | "gameNotFound";
|
|
37
|
+
};
|
|
38
|
+
}, {
|
|
39
|
+
readonly path: "/getJoinableGames";
|
|
40
|
+
readonly action: () => {
|
|
41
|
+
readonly games: readonly {
|
|
42
|
+
readonly id: string;
|
|
43
|
+
readonly numPlayers: number;
|
|
44
|
+
}[];
|
|
45
|
+
};
|
|
46
|
+
}, {
|
|
47
|
+
readonly path: "/joinGame";
|
|
48
|
+
readonly action: (input: unknown, userId: string, username: string) => {
|
|
49
|
+
readonly success: true;
|
|
50
|
+
readonly playerId: string;
|
|
51
|
+
} | {
|
|
52
|
+
readonly success: false;
|
|
53
|
+
readonly error: "invalidInput";
|
|
54
|
+
} | {
|
|
55
|
+
readonly success: false;
|
|
56
|
+
readonly error: "maxPlayersReached" | "alreadyInGame" | "gameNotFound" | "invalidStatus";
|
|
57
|
+
};
|
|
58
|
+
}, {
|
|
59
|
+
readonly path: "/leaveGame";
|
|
60
|
+
readonly action: (input: unknown) => {
|
|
61
|
+
readonly success: true;
|
|
62
|
+
} | {
|
|
63
|
+
readonly success: false;
|
|
64
|
+
readonly error: "invalidInput";
|
|
65
|
+
} | {
|
|
66
|
+
readonly success: false;
|
|
67
|
+
readonly error: "playerNotFound" | "gameNotFound";
|
|
68
|
+
};
|
|
69
|
+
}, {
|
|
70
|
+
readonly path: "/sendChat";
|
|
71
|
+
readonly action: (input: unknown) => {
|
|
72
|
+
readonly success: true;
|
|
73
|
+
} | {
|
|
74
|
+
readonly success: false;
|
|
75
|
+
readonly error: "invalidInput";
|
|
76
|
+
} | {
|
|
77
|
+
readonly success: false;
|
|
78
|
+
readonly error: "playerNotFound" | "gameNotFound";
|
|
79
|
+
};
|
|
80
|
+
}, {
|
|
81
|
+
readonly path: "/startGame";
|
|
82
|
+
readonly action: (input: unknown) => {
|
|
83
|
+
readonly success: true;
|
|
84
|
+
} | {
|
|
85
|
+
readonly success: false;
|
|
86
|
+
readonly error: "invalidInput";
|
|
87
|
+
} | {
|
|
88
|
+
readonly success: false;
|
|
89
|
+
readonly error: "playerNotFound" | "playerNotAdmin" | "minPlayersNotReached" | "gameNotFound" | "invalidStatus";
|
|
90
|
+
};
|
|
91
|
+
}, {
|
|
92
|
+
readonly path: "/drawCard";
|
|
93
|
+
readonly action: (input: unknown) => {
|
|
94
|
+
readonly success: false;
|
|
95
|
+
readonly error: "gameNotFound";
|
|
96
|
+
} | {
|
|
97
|
+
readonly success: false;
|
|
98
|
+
readonly error: "invalidStatus";
|
|
99
|
+
} | {
|
|
100
|
+
readonly success: false;
|
|
101
|
+
readonly error: "playerNotFound" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
|
|
102
|
+
} | {
|
|
103
|
+
readonly success: true;
|
|
104
|
+
readonly error?: never;
|
|
105
|
+
} | {
|
|
106
|
+
readonly success: false;
|
|
107
|
+
readonly error: "invalidInput";
|
|
108
|
+
};
|
|
109
|
+
}, {
|
|
110
|
+
readonly path: "/playCard";
|
|
111
|
+
readonly action: (input: unknown) => {
|
|
112
|
+
readonly success: false;
|
|
113
|
+
readonly error: "gameNotFound";
|
|
114
|
+
} | {
|
|
115
|
+
readonly success: false;
|
|
116
|
+
readonly error: "invalidStatus";
|
|
117
|
+
} | {
|
|
118
|
+
readonly success: false;
|
|
119
|
+
readonly error: "playerNotFound" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
|
|
120
|
+
} | {
|
|
121
|
+
readonly success: true;
|
|
122
|
+
readonly error?: never;
|
|
123
|
+
} | {
|
|
124
|
+
readonly success: false;
|
|
125
|
+
readonly error: "invalidInput";
|
|
126
|
+
};
|
|
127
|
+
}, {
|
|
128
|
+
readonly path: "/reportNoPlayableCards";
|
|
129
|
+
readonly action: (input: unknown) => {
|
|
130
|
+
readonly success: false;
|
|
131
|
+
readonly error: "gameNotFound";
|
|
132
|
+
} | {
|
|
133
|
+
readonly success: false;
|
|
134
|
+
readonly error: "invalidStatus";
|
|
135
|
+
} | {
|
|
136
|
+
readonly success: false;
|
|
137
|
+
readonly error: "playerNotFound" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
|
|
138
|
+
} | {
|
|
139
|
+
readonly success: true;
|
|
140
|
+
readonly error?: never;
|
|
141
|
+
} | {
|
|
142
|
+
readonly success: false;
|
|
143
|
+
readonly error: "invalidInput";
|
|
144
|
+
};
|
|
145
|
+
}];
|
|
146
|
+
};
|
|
147
|
+
//#endregion
|
|
148
|
+
export { createServer };
|
|
149
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/server/createServer.ts"],"mappings":";;cAIa,eAAY,gBAAA,kBAAA;;;;;;;;;;;;;;;;;;sBAAZ;;;;;;;;;;;;gCAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQc,SAAA;;;;;;;;;;;;;;;;;;aAoBA,SAAA;;;;;;;;;;;;;;;;;;aAea,SAAA"}
|
package/dist/server/index.mjs
CHANGED
|
@@ -1,187 +1,67 @@
|
|
|
1
|
-
import { t as
|
|
1
|
+
import { t as createManager } from "../manager-C6kRM9IW.mjs";
|
|
2
|
+
import { createServerFactory } from "@hellacardgames/lib";
|
|
2
3
|
import { z } from "zod";
|
|
3
|
-
//#region src/server/
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
playerId: z.string()
|
|
11
|
-
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
12
|
-
const getEventsAndClearAcknowledgedInputSchema = z.object({
|
|
13
|
-
gameId: z.string(),
|
|
14
|
-
playerId: z.string(),
|
|
15
|
-
lastReadId: z.string().nullable()
|
|
16
|
-
}).transform(({ gameId, playerId, lastReadId }) => [
|
|
17
|
-
gameId,
|
|
18
|
-
playerId,
|
|
19
|
-
lastReadId
|
|
20
|
-
]);
|
|
21
|
-
const joinGameInputSchema = z.object({ gameId: z.string() }).transform(({ gameId }) => [gameId]);
|
|
22
|
-
const leaveGameInputSchema = z.object({
|
|
23
|
-
gameId: z.string(),
|
|
24
|
-
playerId: z.string()
|
|
25
|
-
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
26
|
-
const playCardInputSchema = z.object({
|
|
27
|
-
gameId: z.string(),
|
|
28
|
-
playerId: z.string(),
|
|
29
|
-
cardId: z.string(),
|
|
30
|
-
isForOtherPlayerPile: z.boolean()
|
|
31
|
-
}).transform(({ gameId, playerId, cardId, isForOtherPlayerPile }) => [
|
|
32
|
-
gameId,
|
|
33
|
-
playerId,
|
|
34
|
-
cardId,
|
|
35
|
-
isForOtherPlayerPile
|
|
36
|
-
]);
|
|
37
|
-
const reportNoPlayableCardsInputSchema = z.object({
|
|
38
|
-
gameId: z.string(),
|
|
39
|
-
playerId: z.string()
|
|
40
|
-
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
41
|
-
const sendChatInputSchema = z.object({
|
|
42
|
-
gameId: z.string(),
|
|
43
|
-
playerId: z.string(),
|
|
44
|
-
text: z.string()
|
|
45
|
-
}).transform(({ gameId, playerId, text }) => [
|
|
46
|
-
gameId,
|
|
47
|
-
playerId,
|
|
48
|
-
text
|
|
49
|
-
]);
|
|
50
|
-
const startGameInputSchema = z.object({
|
|
51
|
-
gameId: z.string(),
|
|
52
|
-
playerId: z.string()
|
|
53
|
-
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
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) {
|
|
4
|
+
//#region src/server/createServer.ts
|
|
5
|
+
const createServer = createServerFactory(createManager, (manager) => {
|
|
6
|
+
const drawCardInputSchema = z.object({
|
|
7
|
+
gameId: z.string(),
|
|
8
|
+
playerId: z.string()
|
|
9
|
+
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
10
|
+
function drawCard(input) {
|
|
109
11
|
const parseResult = drawCardInputSchema.safeParse(input);
|
|
110
12
|
if (!parseResult.success) return {
|
|
111
13
|
success: false,
|
|
112
14
|
error: "invalidInput"
|
|
113
15
|
};
|
|
114
|
-
return
|
|
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);
|
|
16
|
+
return manager.drawCard(...parseResult.data);
|
|
123
17
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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) {
|
|
18
|
+
const playCardInputSchema = z.object({
|
|
19
|
+
gameId: z.string(),
|
|
20
|
+
playerId: z.string(),
|
|
21
|
+
cardId: z.string(),
|
|
22
|
+
isForOtherPlayerPile: z.boolean()
|
|
23
|
+
}).transform(({ gameId, playerId, cardId, isForOtherPlayerPile }) => [
|
|
24
|
+
gameId,
|
|
25
|
+
playerId,
|
|
26
|
+
cardId,
|
|
27
|
+
isForOtherPlayerPile
|
|
28
|
+
]);
|
|
29
|
+
function playCard(input) {
|
|
152
30
|
const parseResult = playCardInputSchema.safeParse(input);
|
|
153
31
|
if (!parseResult.success) return {
|
|
154
32
|
success: false,
|
|
155
33
|
error: "invalidInput"
|
|
156
34
|
};
|
|
157
|
-
return
|
|
35
|
+
return manager.playCard(...parseResult.data);
|
|
158
36
|
}
|
|
159
|
-
|
|
37
|
+
const reportNoPlayableCardsInputSchema = z.object({
|
|
38
|
+
gameId: z.string(),
|
|
39
|
+
playerId: z.string()
|
|
40
|
+
}).transform(({ gameId, playerId }) => [gameId, playerId]);
|
|
41
|
+
function reportNoPlayableCards(input) {
|
|
160
42
|
const parseResult = reportNoPlayableCardsInputSchema.safeParse(input);
|
|
161
43
|
if (!parseResult.success) return {
|
|
162
44
|
success: false,
|
|
163
45
|
error: "invalidInput"
|
|
164
46
|
};
|
|
165
|
-
return
|
|
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);
|
|
47
|
+
return manager.reportNoPlayableCards(...parseResult.data);
|
|
174
48
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
49
|
+
return [
|
|
50
|
+
{
|
|
51
|
+
path: "/drawCard",
|
|
52
|
+
action: drawCard
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
path: "/playCard",
|
|
56
|
+
action: playCard
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
path: "/reportNoPlayableCards",
|
|
60
|
+
action: reportNoPlayableCards
|
|
61
|
+
}
|
|
62
|
+
];
|
|
63
|
+
});
|
|
184
64
|
//#endregion
|
|
185
|
-
export {
|
|
65
|
+
export { createServer };
|
|
186
66
|
|
|
187
67
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/server/createServer.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { createServerFactory } from \"@hellacardgames/lib\";\nimport { createManager } from \"../manager/index.js\";\n\nexport const createServer = createServerFactory(createManager, (manager) => {\n const drawCardInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\n function drawCard(input: unknown) {\n const parseResult = drawCardInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" } as const;\n }\n return manager.drawCard(...parseResult.data);\n }\n\n const 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\n function playCard(input: unknown) {\n const parseResult = playCardInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" } as const;\n }\n return manager.playCard(...parseResult.data);\n }\n\n const reportNoPlayableCardsInputSchema = z\n .object({\n gameId: z.string(),\n playerId: z.string(),\n })\n .transform(({ gameId, playerId }) => [gameId, playerId] as const);\n\n function reportNoPlayableCards(input: unknown) {\n const parseResult = reportNoPlayableCardsInputSchema.safeParse(input);\n if (!parseResult.success) {\n return { success: false, error: \"invalidInput\" } as const;\n }\n return manager.reportNoPlayableCards(...parseResult.data);\n }\n\n return [\n { path: \"/drawCard\", action: drawCard },\n { path: \"/playCard\", action: playCard },\n { path: \"/reportNoPlayableCards\", action: reportNoPlayableCards },\n ];\n});\n"],"mappings":";;;;AAIA,MAAa,eAAe,oBAAoB,gBAAgB,YAAY;CAC1E,MAAM,sBAAsB,EACzB,OAAO;EACN,QAAQ,EAAE,OAAO;EACjB,UAAU,EAAE,OAAO;CACrB,CAAC,CAAC,CACD,WAAW,EAAE,QAAQ,eAAe,CAAC,QAAQ,QAAQ,CAAU;CAElE,SAAS,SAAS,OAAgB;EAChC,MAAM,cAAc,oBAAoB,UAAU,KAAK;EACvD,IAAI,CAAC,YAAY,SACf,OAAO;GAAE,SAAS;GAAO,OAAO;EAAe;EAEjD,OAAO,QAAQ,SAAS,GAAG,YAAY,IAAI;CAC7C;CAEA,MAAM,sBAAsB,EACzB,OAAO;EACN,QAAQ,EAAE,OAAO;EACjB,UAAU,EAAE,OAAO;EACnB,QAAQ,EAAE,OAAO;EACjB,sBAAsB,EAAE,QAAQ;CAClC,CAAC,CAAC,CACD,WACE,EAAE,QAAQ,UAAU,QAAQ,2BAC3B;EAAC;EAAQ;EAAU;EAAQ;CAAoB,CACnD;CAEF,SAAS,SAAS,OAAgB;EAChC,MAAM,cAAc,oBAAoB,UAAU,KAAK;EACvD,IAAI,CAAC,YAAY,SACf,OAAO;GAAE,SAAS;GAAO,OAAO;EAAe;EAEjD,OAAO,QAAQ,SAAS,GAAG,YAAY,IAAI;CAC7C;CAEA,MAAM,mCAAmC,EACtC,OAAO;EACN,QAAQ,EAAE,OAAO;EACjB,UAAU,EAAE,OAAO;CACrB,CAAC,CAAC,CACD,WAAW,EAAE,QAAQ,eAAe,CAAC,QAAQ,QAAQ,CAAU;CAElE,SAAS,sBAAsB,OAAgB;EAC7C,MAAM,cAAc,iCAAiC,UAAU,KAAK;EACpE,IAAI,CAAC,YAAY,SACf,OAAO;GAAE,SAAS;GAAO,OAAO;EAAe;EAEjD,OAAO,QAAQ,sBAAsB,GAAG,YAAY,IAAI;CAC1D;CAEA,OAAO;EACL;GAAE,MAAM;GAAa,QAAQ;EAAS;EACtC;GAAE,MAAM;GAAa,QAAQ;EAAS;EACtC;GAAE,MAAM;GAA0B,QAAQ;EAAsB;CAClE;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hellacardgames/speed",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.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.
|
|
89
|
+
"@hellacardgames/lib": "^0.7.0",
|
|
90
90
|
"zod": "^4.4.3"
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { c as Manager, m as ClientState, p as GameEvent } from "./index-uaOvIhKT.mjs";
|
|
2
|
-
//#region src/server/Server.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
|
-
type DrawCardResult = {
|
|
12
|
-
readonly success: true;
|
|
13
|
-
} | {
|
|
14
|
-
readonly success: false;
|
|
15
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "handFull" | "drawPileEmpty";
|
|
16
|
-
};
|
|
17
|
-
type GetClientStateAndClearEventsResult = {
|
|
18
|
-
readonly success: true;
|
|
19
|
-
readonly state: ClientState;
|
|
20
|
-
} | {
|
|
21
|
-
readonly success: false;
|
|
22
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
|
|
23
|
-
};
|
|
24
|
-
type GetEventsAndClearAcknowledgedResult = {
|
|
25
|
-
readonly success: true;
|
|
26
|
-
readonly events: readonly GameEvent[];
|
|
27
|
-
} | {
|
|
28
|
-
readonly success: false;
|
|
29
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
|
|
30
|
-
};
|
|
31
|
-
type GetJoinableGamesResult = {
|
|
32
|
-
readonly games: readonly {
|
|
33
|
-
readonly id: string;
|
|
34
|
-
readonly numPlayers: number;
|
|
35
|
-
}[];
|
|
36
|
-
};
|
|
37
|
-
type JoinGameResult = {
|
|
38
|
-
readonly success: true;
|
|
39
|
-
readonly playerId: string;
|
|
40
|
-
} | {
|
|
41
|
-
readonly success: false;
|
|
42
|
-
readonly error: "invalidInput" | "gameNotFound" | "invalidStatus" | "maxPlayersReached" | "alreadyInGame";
|
|
43
|
-
};
|
|
44
|
-
type LeaveGameResult = {
|
|
45
|
-
readonly success: true;
|
|
46
|
-
} | {
|
|
47
|
-
readonly success: false;
|
|
48
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
|
|
49
|
-
};
|
|
50
|
-
type PlayCardResult = {
|
|
51
|
-
readonly success: true;
|
|
52
|
-
} | {
|
|
53
|
-
readonly success: false;
|
|
54
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "cardNotFound" | "cardNotPlayable";
|
|
55
|
-
};
|
|
56
|
-
type ReportNoPlayableCardsResult = {
|
|
57
|
-
readonly success: true;
|
|
58
|
-
} | {
|
|
59
|
-
readonly success: false;
|
|
60
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound" | "invalidStatus" | "canPlayAtNotReached" | "alreadyReported" | "hasPlayableCard" | "canDraw";
|
|
61
|
-
};
|
|
62
|
-
type SendChatResult = {
|
|
63
|
-
readonly success: true;
|
|
64
|
-
} | {
|
|
65
|
-
readonly success: false;
|
|
66
|
-
readonly error: "invalidInput" | "gameNotFound" | "playerNotFound";
|
|
67
|
-
};
|
|
68
|
-
type StartGameResult = {
|
|
69
|
-
readonly success: true;
|
|
70
|
-
} | {
|
|
71
|
-
readonly success: false;
|
|
72
|
-
readonly error: "invalidInput" | "gameNotFound" | "invalidStatus" | "playerNotFound" | "playerNotAdmin" | "minPlayersNotReached";
|
|
73
|
-
};
|
|
74
|
-
declare class Server {
|
|
75
|
-
private readonly manager;
|
|
76
|
-
readonly actions: readonly [{
|
|
77
|
-
readonly path: "/createGame";
|
|
78
|
-
readonly action: (userId: string, username: string) => CreateGameResult;
|
|
79
|
-
}, {
|
|
80
|
-
readonly path: "/drawCard";
|
|
81
|
-
readonly action: (input: unknown) => DrawCardResult;
|
|
82
|
-
}, {
|
|
83
|
-
readonly path: "/getClientStateAndClearEvents";
|
|
84
|
-
readonly action: (input: unknown) => GetClientStateAndClearEventsResult;
|
|
85
|
-
}, {
|
|
86
|
-
readonly path: "/getEventsAndClearAcknowledged";
|
|
87
|
-
readonly action: (input: unknown) => GetEventsAndClearAcknowledgedResult;
|
|
88
|
-
}, {
|
|
89
|
-
readonly path: "/getJoinableGames";
|
|
90
|
-
readonly action: () => GetJoinableGamesResult;
|
|
91
|
-
}, {
|
|
92
|
-
readonly path: "/joinGame";
|
|
93
|
-
readonly action: (input: unknown, userId: string, username: string) => JoinGameResult;
|
|
94
|
-
}, {
|
|
95
|
-
readonly path: "/leaveGame";
|
|
96
|
-
readonly action: (input: unknown) => LeaveGameResult;
|
|
97
|
-
}, {
|
|
98
|
-
readonly path: "/playCard";
|
|
99
|
-
readonly action: (input: unknown) => PlayCardResult;
|
|
100
|
-
}, {
|
|
101
|
-
readonly path: "/reportNoPlayableCards";
|
|
102
|
-
readonly action: (input: unknown) => ReportNoPlayableCardsResult;
|
|
103
|
-
}, {
|
|
104
|
-
readonly path: "/sendChat";
|
|
105
|
-
readonly action: (input: unknown) => SendChatResult;
|
|
106
|
-
}, {
|
|
107
|
-
readonly path: "/startGame";
|
|
108
|
-
readonly action: (input: unknown) => StartGameResult;
|
|
109
|
-
}];
|
|
110
|
-
constructor(...args: ConstructorParameters<typeof Manager>);
|
|
111
|
-
private createGame;
|
|
112
|
-
private drawCard;
|
|
113
|
-
private getClientStateAndClearEvents;
|
|
114
|
-
private getEventsAndClearAcknowledged;
|
|
115
|
-
private getJoinableGames;
|
|
116
|
-
private joinGame;
|
|
117
|
-
private leaveGame;
|
|
118
|
-
private playCard;
|
|
119
|
-
private reportNoPlayableCards;
|
|
120
|
-
private sendChat;
|
|
121
|
-
private startGame;
|
|
122
|
-
}
|
|
123
|
-
//#endregion
|
|
124
|
-
export { GetJoinableGamesResult as a, PlayCardResult as c, Server as d, StartGameResult as f, GetEventsAndClearAcknowledgedResult as i, ReportNoPlayableCardsResult as l, DrawCardResult as n, JoinGameResult as o, GetClientStateAndClearEventsResult as r, LeaveGameResult as s, CreateGameResult as t, SendChatResult as u };
|
|
125
|
-
//# sourceMappingURL=index-C5bT1Zzd.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-C5bT1Zzd.d.mts","names":[],"sources":["../src/server/Server.ts"],"mappings":";;KAIY;WAEG;WACA;WACA;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;KAUH;WAEG;WACA,OAAO;;WAGP;WACA;;KAGH;WAEG;WACA,iBAAiB;;WAGjB;WACA;;KAGH;WACD;aACE;aACA;;;KAID;WAEG;WACA;;WAGA;WACA;;KAQH;WAEG;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;KAUH;WAEG;;WAGA;WACA;;KAWH;WAEG;;WAGA;WACA;;KAGH;WAEG;;WAGA;WACA;;cAiFF;mBACM;WAER;;aA2BkB,SAAA,gBAAM,qBAAqB;;;aAI9B,SAAA,mBAAU;;;aASzB,SAAA,mBACN;;;aAUM,SAAA,mBACN;;;aASyB,cAAA;;;aAKnB,SAAA,gBAAO,gBACA,qBAEb;;;aAQsB,SAAA,mBAAU;;;aAQX,SAAA,mBAAU;;;aAQG,SAAA,mBAAU;;;aAQvB,SAAA,mBAAU;;;aAQT,SAAA,mBAAU;;EAtFvB,eAAG,MAAM,6BAA6B;UAI1C;UAIA;UAQA;UAWA;UAWA;UAIA;UAYA;UAQA;UAQA;UAQA;UAQA"}
|