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