@quizpot/quizcore 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/index.cjs +582 -0
  2. package/dist/index.d.cts +472 -0
  3. package/dist/index.d.cts.map +1 -0
  4. package/dist/index.d.mts +472 -0
  5. package/dist/index.d.mts.map +1 -0
  6. package/dist/index.mjs +522 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +7 -6
  9. package/dist/events/client/host/kick-player.d.ts +0 -8
  10. package/dist/events/client/host/kick-player.d.ts.map +0 -1
  11. package/dist/events/client/host/kick-player.js +0 -4
  12. package/dist/events/client/host/next-step.d.ts +0 -5
  13. package/dist/events/client/host/next-step.d.ts.map +0 -1
  14. package/dist/events/client/host/next-step.js +0 -3
  15. package/dist/events/client/host/start-lobby.d.ts +0 -6
  16. package/dist/events/client/host/start-lobby.d.ts.map +0 -1
  17. package/dist/events/client/host/start-lobby.js +0 -4
  18. package/dist/events/client/player/submit-answer.d.ts +0 -9
  19. package/dist/events/client/player/submit-answer.d.ts.map +0 -1
  20. package/dist/events/client/player/submit-answer.js +0 -4
  21. package/dist/events/server/lobby-deleted.d.ts +0 -8
  22. package/dist/events/server/lobby-deleted.d.ts.map +0 -1
  23. package/dist/events/server/lobby-deleted.js +0 -4
  24. package/dist/events/server/lobby-joined.d.ts +0 -14
  25. package/dist/events/server/lobby-joined.d.ts.map +0 -1
  26. package/dist/events/server/lobby-joined.js +0 -18
  27. package/dist/events/server/lobby-status-update.d.ts +0 -32
  28. package/dist/events/server/lobby-status-update.d.ts.map +0 -1
  29. package/dist/events/server/lobby-status-update.js +0 -4
  30. package/dist/events/server/player-answer-result.d.ts +0 -11
  31. package/dist/events/server/player-answer-result.d.ts.map +0 -1
  32. package/dist/events/server/player-answer-result.js +0 -4
  33. package/dist/events/server/player-joined.d.ts +0 -9
  34. package/dist/events/server/player-joined.d.ts.map +0 -1
  35. package/dist/events/server/player-joined.js +0 -4
  36. package/dist/events/server/player-kicked.d.ts +0 -6
  37. package/dist/events/server/player-kicked.d.ts.map +0 -1
  38. package/dist/events/server/player-kicked.js +0 -4
  39. package/dist/events/server/player-left.d.ts +0 -9
  40. package/dist/events/server/player-left.d.ts.map +0 -1
  41. package/dist/events/server/player-left.js +0 -4
  42. package/dist/events/server/player-update.d.ts +0 -9
  43. package/dist/events/server/player-update.d.ts.map +0 -1
  44. package/dist/events/server/player-update.js +0 -4
  45. package/dist/events/server/update-lobby-answers.d.ts +0 -8
  46. package/dist/events/server/update-lobby-answers.d.ts.map +0 -1
  47. package/dist/events/server/update-lobby-answers.js +0 -4
  48. package/dist/index.d.ts +0 -26
  49. package/dist/index.d.ts.map +0 -1
  50. package/dist/index.js +0 -25
  51. package/dist/managers/lobby-manager.d.ts +0 -12
  52. package/dist/managers/lobby-manager.d.ts.map +0 -1
  53. package/dist/managers/lobby-manager.js +0 -112
  54. package/dist/types/events.d.ts +0 -16
  55. package/dist/types/events.d.ts.map +0 -1
  56. package/dist/types/events.js +0 -1
  57. package/dist/types/lobby.d.ts +0 -42
  58. package/dist/types/lobby.d.ts.map +0 -1
  59. package/dist/types/lobby.js +0 -10
  60. package/dist/types/question.d.ts +0 -106
  61. package/dist/types/question.d.ts.map +0 -1
  62. package/dist/types/question.js +0 -22
  63. package/dist/types/questions/multiple-choice.d.ts +0 -51
  64. package/dist/types/questions/multiple-choice.d.ts.map +0 -1
  65. package/dist/types/questions/multiple-choice.js +0 -21
  66. package/dist/types/questions/short-answer.d.ts +0 -34
  67. package/dist/types/questions/short-answer.d.ts.map +0 -1
  68. package/dist/types/questions/short-answer.js +0 -11
  69. package/dist/types/questions/true-false.d.ts +0 -36
  70. package/dist/types/questions/true-false.d.ts.map +0 -1
  71. package/dist/types/questions/true-false.js +0 -12
  72. package/dist/types/quizfile.d.ts +0 -79
  73. package/dist/types/quizfile.d.ts.map +0 -1
  74. package/dist/types/quizfile.js +0 -23
  75. package/dist/types/quizstep.d.ts +0 -73
  76. package/dist/types/quizstep.d.ts.map +0 -1
  77. package/dist/types/quizstep.js +0 -7
  78. package/dist/types/quiztheme.d.ts +0 -7
  79. package/dist/types/quiztheme.d.ts.map +0 -1
  80. package/dist/types/quiztheme.js +0 -5
  81. package/dist/types/slide.d.ts +0 -18
  82. package/dist/types/slide.d.ts.map +0 -1
  83. package/dist/types/slide.js +0 -9
  84. package/dist/types/slides/comparison.d.ts +0 -9
  85. package/dist/types/slides/comparison.d.ts.map +0 -1
  86. package/dist/types/slides/comparison.js +0 -7
  87. package/dist/types/slides/titleImageTextSlide.d.ts +0 -9
  88. package/dist/types/slides/titleImageTextSlide.d.ts.map +0 -1
  89. package/dist/types/slides/titleImageTextSlide.js +0 -7
  90. package/dist/types/slides/titleSlide.d.ts +0 -8
  91. package/dist/types/slides/titleSlide.d.ts.map +0 -1
  92. package/dist/types/slides/titleSlide.js +0 -6
  93. package/dist/util/guards.d.ts +0 -18
  94. package/dist/util/guards.d.ts.map +0 -1
  95. package/dist/util/guards.js +0 -15
  96. package/dist/util/names/additives.json +0 -23
  97. package/dist/util/names/animals.json +0 -23
  98. package/dist/util/names/colors.json +0 -14
  99. package/dist/util/names/names.d.ts +0 -4
  100. package/dist/util/names/names.d.ts.map +0 -1
  101. package/dist/util/names/names.js +0 -31
  102. package/dist/util/sanitizer.d.ts +0 -3
  103. package/dist/util/sanitizer.d.ts.map +0 -1
  104. package/dist/util/sanitizer.js +0 -18
  105. package/dist/util/score.d.ts +0 -11
  106. package/dist/util/score.d.ts.map +0 -1
  107. package/dist/util/score.js +0 -33
  108. package/dist/util/validator.d.ts +0 -14
  109. package/dist/util/validator.d.ts.map +0 -1
  110. package/dist/util/validator.js +0 -27
@@ -0,0 +1,472 @@
1
+ import z from "zod";
2
+
3
+ //#region src/events/client/host/kick-player.d.ts
4
+ type KickPlayer = {
5
+ type: "KICK_PLAYER";
6
+ payload: {
7
+ playerId: string;
8
+ };
9
+ };
10
+ declare const createKickPlayerEvent: (playerId: string) => KickPlayer;
11
+ //#endregion
12
+ //#region src/events/client/host/next-step.d.ts
13
+ type NextStep = {
14
+ type: "NEXT_STEP";
15
+ };
16
+ declare const createNextStepEvent: () => NextStep;
17
+ //#endregion
18
+ //#region src/events/client/host/start-lobby.d.ts
19
+ type StartLobby = {
20
+ type: "START_LOBBY";
21
+ payload: {};
22
+ };
23
+ declare const createStartLobbyEvent: () => StartLobby;
24
+ //#endregion
25
+ //#region src/types/questions/short-answer.d.ts
26
+ declare const ShortAnswerQuestionSchema: z.ZodObject<{
27
+ question: z.ZodString;
28
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
29
+ displayTime: z.ZodNumber;
30
+ timeLimit: z.ZodNumber;
31
+ points: z.ZodEnum<{
32
+ normalPoints: "normalPoints";
33
+ doublePoints: "doublePoints";
34
+ noPoints: "noPoints";
35
+ }>;
36
+ type: z.ZodLiteral<"short-answer">;
37
+ answers: z.ZodArray<z.ZodString>;
38
+ }, z.core.$strip>;
39
+ type ShortAnswerQuestion = z.infer<typeof ShortAnswerQuestionSchema>;
40
+ declare const SafeShortAnswerQuestionSchema: z.ZodObject<{
41
+ type: z.ZodLiteral<"short-answer">;
42
+ points: z.ZodEnum<{
43
+ normalPoints: "normalPoints";
44
+ doublePoints: "doublePoints";
45
+ noPoints: "noPoints";
46
+ }>;
47
+ question: z.ZodString;
48
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
49
+ displayTime: z.ZodNumber;
50
+ timeLimit: z.ZodNumber;
51
+ }, z.core.$strip>;
52
+ type SafeShortAnswerQuestion = z.infer<typeof SafeShortAnswerQuestionSchema>;
53
+ declare const ShortAnswerQuestionAnswerSchema: z.ZodObject<{
54
+ type: z.ZodLiteral<"short-answer">;
55
+ answer: z.ZodString;
56
+ }, z.core.$strip>;
57
+ type ShortAnswerQuestionAnswer = z.infer<typeof ShortAnswerQuestionAnswerSchema>;
58
+ //#endregion
59
+ //#region src/types/questions/true-false.d.ts
60
+ declare const TrueFalseQuestionSchema: z.ZodObject<{
61
+ question: z.ZodString;
62
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
63
+ displayTime: z.ZodNumber;
64
+ timeLimit: z.ZodNumber;
65
+ points: z.ZodEnum<{
66
+ normalPoints: "normalPoints";
67
+ doublePoints: "doublePoints";
68
+ noPoints: "noPoints";
69
+ }>;
70
+ type: z.ZodLiteral<"true-false">;
71
+ answer: z.ZodBoolean;
72
+ labels: z.ZodArray<z.ZodString>;
73
+ }, z.core.$strip>;
74
+ type TrueFalseQuestion = z.infer<typeof TrueFalseQuestionSchema>;
75
+ declare const SafeTrueFalseQuestionSchema: z.ZodObject<{
76
+ type: z.ZodLiteral<"true-false">;
77
+ points: z.ZodEnum<{
78
+ normalPoints: "normalPoints";
79
+ doublePoints: "doublePoints";
80
+ noPoints: "noPoints";
81
+ }>;
82
+ question: z.ZodString;
83
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
84
+ displayTime: z.ZodNumber;
85
+ timeLimit: z.ZodNumber;
86
+ labels: z.ZodArray<z.ZodString>;
87
+ }, z.core.$strip>;
88
+ type SafeTrueFalseQuestion = z.infer<typeof SafeTrueFalseQuestionSchema>;
89
+ declare const TrueFalseQuestionAnswerSchema: z.ZodObject<{
90
+ type: z.ZodLiteral<"true-false">;
91
+ answer: z.ZodBoolean;
92
+ }, z.core.$strip>;
93
+ type TrueFalseQuestionAnswer = z.infer<typeof TrueFalseQuestionAnswerSchema>;
94
+ //#endregion
95
+ //#region src/types/questions/multiple-choice.d.ts
96
+ declare const ChoiceSchema: z.ZodObject<{
97
+ text: z.ZodString;
98
+ correct: z.ZodBoolean;
99
+ }, z.core.$strip>;
100
+ type Choice = z.infer<typeof ChoiceSchema>;
101
+ declare const SafeChoiceSchema: z.ZodObject<{
102
+ text: z.ZodString;
103
+ }, z.core.$strip>;
104
+ type SafeChoice = z.infer<typeof SafeChoiceSchema>;
105
+ declare const MultipleChoiceQuestionSchema: z.ZodObject<{
106
+ question: z.ZodString;
107
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
108
+ displayTime: z.ZodNumber;
109
+ timeLimit: z.ZodNumber;
110
+ points: z.ZodEnum<{
111
+ normalPoints: "normalPoints";
112
+ doublePoints: "doublePoints";
113
+ noPoints: "noPoints";
114
+ }>;
115
+ type: z.ZodLiteral<"multiple-choice">;
116
+ choices: z.ZodArray<z.ZodObject<{
117
+ text: z.ZodString;
118
+ correct: z.ZodBoolean;
119
+ }, z.core.$strip>>;
120
+ matchAll: z.ZodBoolean;
121
+ }, z.core.$strip>;
122
+ type MultipleChoiceQuestion = z.infer<typeof MultipleChoiceQuestionSchema>;
123
+ declare const SafeMultipleChoiceQuestionSchema: z.ZodObject<{
124
+ type: z.ZodLiteral<"multiple-choice">;
125
+ points: z.ZodEnum<{
126
+ normalPoints: "normalPoints";
127
+ doublePoints: "doublePoints";
128
+ noPoints: "noPoints";
129
+ }>;
130
+ question: z.ZodString;
131
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
132
+ displayTime: z.ZodNumber;
133
+ timeLimit: z.ZodNumber;
134
+ matchAll: z.ZodBoolean;
135
+ choices: z.ZodArray<z.ZodObject<{
136
+ text: z.ZodString;
137
+ }, z.core.$strip>>;
138
+ }, z.core.$strip>;
139
+ type SafeMultipleChoiceQuestion = z.infer<typeof SafeMultipleChoiceQuestionSchema>;
140
+ declare const MultipleChoiceQuestionAnswerSchema: z.ZodObject<{
141
+ type: z.ZodLiteral<"multiple-choice">;
142
+ choices: z.ZodArray<z.ZodNumber>;
143
+ }, z.core.$strip>;
144
+ type MultipleChoiceQuestionAnswer = z.infer<typeof MultipleChoiceQuestionAnswerSchema>;
145
+ //#endregion
146
+ //#region src/types/question.d.ts
147
+ type Question = MultipleChoiceQuestion | TrueFalseQuestion | ShortAnswerQuestion;
148
+ type SafeQuestion = SafeMultipleChoiceQuestion | SafeTrueFalseQuestion | SafeShortAnswerQuestion;
149
+ //#endregion
150
+ //#region src/util/validator.d.ts
151
+ type SubmittedAnswer = MultipleChoiceQuestionAnswer | TrueFalseQuestionAnswer | ShortAnswerQuestionAnswer;
152
+ interface Answer {
153
+ playerId: string;
154
+ submission: SubmittedAnswer;
155
+ timeTaken: number;
156
+ isCorrect: boolean;
157
+ pointsAwarded: number;
158
+ }
159
+ declare const isCorrect: (question: Question, submission: SubmittedAnswer) => boolean;
160
+ //#endregion
161
+ //#region src/events/client/player/submit-answer.d.ts
162
+ type SubmitAnswer = {
163
+ type: "SUBMIT_ANSWER";
164
+ payload: {
165
+ submission: SubmittedAnswer;
166
+ };
167
+ };
168
+ declare const createSubmitAnswerEvent: (submission: SubmittedAnswer) => SubmitAnswer;
169
+ //#endregion
170
+ //#region src/events/server/lobby-deleted.d.ts
171
+ type LobbyDeleted = {
172
+ type: "LOBBY_DELETED";
173
+ payload: {
174
+ reason: string;
175
+ };
176
+ };
177
+ declare const createLobbyDeletedEvent: (reason: string) => LobbyDeleted;
178
+ //#endregion
179
+ //#region src/types/quizfile.d.ts
180
+ type QuizFile = z.infer<typeof QuizFileSchema>;
181
+ declare const QuizFileSchema: z.ZodObject<{
182
+ id: z.ZodUUID;
183
+ version: z.ZodLiteral<2>;
184
+ title: z.ZodString;
185
+ description: z.ZodOptional<z.ZodString>;
186
+ theme: z.ZodObject<{
187
+ color: z.ZodString;
188
+ background: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
189
+ }, z.core.$strip>;
190
+ language: z.ZodString;
191
+ steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
192
+ type: z.ZodLiteral<"question">;
193
+ data: z.ZodDiscriminatedUnion<[z.ZodObject<{
194
+ question: z.ZodString;
195
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
196
+ displayTime: z.ZodNumber;
197
+ timeLimit: z.ZodNumber;
198
+ points: z.ZodEnum<{
199
+ normalPoints: "normalPoints";
200
+ doublePoints: "doublePoints";
201
+ noPoints: "noPoints";
202
+ }>;
203
+ type: z.ZodLiteral<"multiple-choice">;
204
+ choices: z.ZodArray<z.ZodObject<{
205
+ text: z.ZodString;
206
+ correct: z.ZodBoolean;
207
+ }, z.core.$strip>>;
208
+ matchAll: z.ZodBoolean;
209
+ }, z.core.$strip>, z.ZodObject<{
210
+ question: z.ZodString;
211
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
212
+ displayTime: z.ZodNumber;
213
+ timeLimit: z.ZodNumber;
214
+ points: z.ZodEnum<{
215
+ normalPoints: "normalPoints";
216
+ doublePoints: "doublePoints";
217
+ noPoints: "noPoints";
218
+ }>;
219
+ type: z.ZodLiteral<"true-false">;
220
+ answer: z.ZodBoolean;
221
+ labels: z.ZodArray<z.ZodString>;
222
+ }, z.core.$strip>, z.ZodObject<{
223
+ question: z.ZodString;
224
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
225
+ displayTime: z.ZodNumber;
226
+ timeLimit: z.ZodNumber;
227
+ points: z.ZodEnum<{
228
+ normalPoints: "normalPoints";
229
+ doublePoints: "doublePoints";
230
+ noPoints: "noPoints";
231
+ }>;
232
+ type: z.ZodLiteral<"short-answer">;
233
+ answers: z.ZodArray<z.ZodString>;
234
+ }, z.core.$strip>], "type">;
235
+ }, z.core.$strip>, z.ZodObject<{
236
+ type: z.ZodLiteral<"slide">;
237
+ data: z.ZodDiscriminatedUnion<[z.ZodObject<{
238
+ slideType: z.ZodLiteral<"title">;
239
+ title: z.ZodString;
240
+ subtitle: z.ZodOptional<z.ZodString>;
241
+ }, z.core.$strip>, z.ZodObject<{
242
+ slideType: z.ZodLiteral<"titleImageText">;
243
+ title: z.ZodString;
244
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
245
+ text: z.ZodString;
246
+ }, z.core.$strip>, z.ZodObject<{
247
+ slideType: z.ZodLiteral<"comparison">;
248
+ title: z.ZodString;
249
+ left: z.ZodString;
250
+ right: z.ZodString;
251
+ }, z.core.$strip>], "slideType">;
252
+ }, z.core.$strip>], "type">>;
253
+ images: z.ZodRecord<z.ZodCustomStringFormat<"sha256_hex">, z.ZodString>;
254
+ updatedAt: z.ZodISODateTime;
255
+ createdAt: z.ZodISODateTime;
256
+ }, z.core.$strip>;
257
+ //#endregion
258
+ //#region src/types/quiztheme.d.ts
259
+ type QuizTheme = z.infer<typeof QuizThemeSchema>;
260
+ declare const QuizThemeSchema: z.ZodObject<{
261
+ color: z.ZodString;
262
+ background: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
263
+ }, z.core.$strip>;
264
+ //#endregion
265
+ //#region src/types/lobby.d.ts
266
+ type Lobby = {
267
+ code: string;
268
+ host: string;
269
+ quiz: QuizFile;
270
+ quizInfo: {
271
+ title: string;
272
+ stepCount: number;
273
+ theme: QuizTheme;
274
+ };
275
+ players: Player[];
276
+ status: LobbyStatus;
277
+ timeoutStartedAt: number | null;
278
+ duration: number | null;
279
+ currentStep: number;
280
+ currentAnswers: Answer[];
281
+ answers: Answer[];
282
+ settings: LobbySettings;
283
+ };
284
+ type LobbySettings = {
285
+ customNames: boolean;
286
+ displayOnDevice: boolean;
287
+ };
288
+ declare enum LobbyStatus {
289
+ waiting = "waiting",
290
+ slide = "slide",
291
+ question = "question",
292
+ answer = "answer",
293
+ answers = "answers",
294
+ score = "score",
295
+ end = "end"
296
+ }
297
+ type Player = {
298
+ id: string;
299
+ name: string;
300
+ score: number;
301
+ streak: number;
302
+ isConnected: boolean;
303
+ };
304
+ //#endregion
305
+ //#region src/events/server/lobby-joined.d.ts
306
+ type LobbyJoined = {
307
+ type: "LOBBY_JOINED";
308
+ payload: {
309
+ lobby: Omit<Lobby, "host" | "quiz" | "players" | "currentAnswers" | "answers">;
310
+ me?: Player;
311
+ players?: Player[];
312
+ currentAnswers?: Answer[];
313
+ answers?: Answer[];
314
+ };
315
+ };
316
+ declare const createLobbyJoinedEvent: (lobby: Lobby, me: Player, isHost: boolean) => LobbyJoined;
317
+ //#endregion
318
+ //#region src/types/slide.d.ts
319
+ type Slide = z.infer<typeof SlideSchema>;
320
+ declare const SlideSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
321
+ slideType: z.ZodLiteral<"title">;
322
+ title: z.ZodString;
323
+ subtitle: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$strip>, z.ZodObject<{
325
+ slideType: z.ZodLiteral<"titleImageText">;
326
+ title: z.ZodString;
327
+ imageHash: z.ZodOptional<z.ZodCustomStringFormat<"sha256_hex">>;
328
+ text: z.ZodString;
329
+ }, z.core.$strip>, z.ZodObject<{
330
+ slideType: z.ZodLiteral<"comparison">;
331
+ title: z.ZodString;
332
+ left: z.ZodString;
333
+ right: z.ZodString;
334
+ }, z.core.$strip>], "slideType">;
335
+ //#endregion
336
+ //#region src/events/server/lobby-status-update.d.ts
337
+ type LobbyStatusUpdate = {
338
+ type: "LOBBY_STATUS_UPDATE";
339
+ payload: {
340
+ status: LobbyStatus.waiting;
341
+ } | {
342
+ status: LobbyStatus.slide;
343
+ slide: Slide;
344
+ } | {
345
+ status: LobbyStatus.question;
346
+ question: SafeQuestion;
347
+ timeoutStartedAt: number;
348
+ duration: number;
349
+ } | {
350
+ status: LobbyStatus.answer;
351
+ timeoutStartedAt: number;
352
+ duration: number;
353
+ } | {
354
+ status: LobbyStatus.answers;
355
+ answers: Answer[];
356
+ } | {
357
+ status: LobbyStatus.score;
358
+ leaderboard: Player[];
359
+ } | {
360
+ status: LobbyStatus.end;
361
+ };
362
+ };
363
+ declare const createLobbyStatusUpdateEvent: (payload: LobbyStatusUpdate["payload"]) => LobbyStatusUpdate;
364
+ //#endregion
365
+ //#region src/events/server/player-answer-result.d.ts
366
+ type PlayerAnswerResult = {
367
+ type: "PLAYER_ANSWER_RESULT";
368
+ payload: {
369
+ isCorrect: boolean;
370
+ pointsAwarded: number;
371
+ score: number;
372
+ streak: number;
373
+ };
374
+ };
375
+ declare const createPlayerAnswerResultEvent: (isCorrect: boolean, pointsAwarded: number, score: number, streak: number) => PlayerAnswerResult;
376
+ //#endregion
377
+ //#region src/events/server/player-joined.d.ts
378
+ type PlayerJoined = {
379
+ type: "PLAYER_JOINED";
380
+ payload: {
381
+ player: Player;
382
+ };
383
+ };
384
+ declare const createPlayerJoinedEvent: (player: Player) => PlayerJoined;
385
+ //#endregion
386
+ //#region src/events/server/player-kicked.d.ts
387
+ type PlayerKicked = {
388
+ type: "PLAYER_KICKED";
389
+ payload: {};
390
+ };
391
+ declare const createPlayerKickedEvent: () => PlayerKicked;
392
+ //#endregion
393
+ //#region src/events/server/player-left.d.ts
394
+ type PlayerLeft = {
395
+ type: "PLAYER_LEFT";
396
+ payload: {
397
+ player: Player;
398
+ };
399
+ };
400
+ declare const createPlayerLeftEvent: (player: Player) => PlayerLeft;
401
+ //#endregion
402
+ //#region src/events/server/player-update.d.ts
403
+ type PlayerUpdate = {
404
+ type: "PLAYER_UPDATE";
405
+ payload: {
406
+ player: Player;
407
+ };
408
+ };
409
+ declare const createPlayerUpdateEvent: (player: Player) => PlayerUpdate;
410
+ //#endregion
411
+ //#region src/events/server/update-lobby-answers.d.ts
412
+ type UpdateLobbyAnswers = {
413
+ type: "UPDATE_LOBBY_ANSWERS";
414
+ payload: {
415
+ count: number;
416
+ };
417
+ };
418
+ declare const createUpdateLobbyAnswersEvent: (count: number) => UpdateLobbyAnswers;
419
+ //#endregion
420
+ //#region src/managers/lobby-manager.d.ts
421
+ declare const createLobby: (code: string, hostId: string, quiz: QuizFile) => Lobby;
422
+ declare const advanceLobby: (lobby: Lobby) => Lobby;
423
+ type SubmissionResult = {
424
+ nextLobby: Lobby;
425
+ result: PlayerAnswerResult;
426
+ };
427
+ declare const handleSubmission: (lobby: Lobby, playerId: string, submission: SubmittedAnswer) => SubmissionResult | null;
428
+ //#endregion
429
+ //#region src/types/events.d.ts
430
+ type AllClientEvents = KickPlayer | StartLobby | NextStep | SubmitAnswer;
431
+ type AllServerEvents = PlayerJoined | PlayerLeft | PlayerUpdate | LobbyStatusUpdate | UpdateLobbyAnswers | PlayerAnswerResult | PlayerKicked | LobbyDeleted | LobbyJoined;
432
+ //#endregion
433
+ //#region src/types/quizstep.d.ts
434
+ type QuizStep = {
435
+ type: "question";
436
+ data: Question;
437
+ } | {
438
+ type: "slide";
439
+ data: Slide;
440
+ };
441
+ //#endregion
442
+ //#region src/util/guards.d.ts
443
+ declare const isQuestion: (step: QuizStep) => step is {
444
+ type: "question";
445
+ data: Question;
446
+ };
447
+ declare const isSlide: (step: QuizStep) => step is {
448
+ type: "slide";
449
+ data: Slide;
450
+ };
451
+ declare const isMultipleChoice: (data: Question) => data is MultipleChoiceQuestion;
452
+ declare const isTrueFalse: (data: Question) => data is TrueFalseQuestion;
453
+ declare const isShortAnswer: (data: Question) => data is ShortAnswerQuestion;
454
+ //#endregion
455
+ //#region src/util/names/names.d.ts
456
+ declare const generateName: () => string;
457
+ declare const generateUniqueName: (players: Player[]) => string;
458
+ //#endregion
459
+ //#region src/util/sanitizer.d.ts
460
+ declare const sanitizeQuestion: (question: Question) => SafeQuestion;
461
+ //#endregion
462
+ //#region src/util/score.d.ts
463
+ declare const calculateScore: (player: {
464
+ score: number;
465
+ streak: number;
466
+ }, question: Question, answer: Answer, quiz: QuizFile) => {
467
+ newScore: number;
468
+ pointsAwarded: number;
469
+ };
470
+ //#endregion
471
+ export { AllClientEvents, AllServerEvents, Answer, Choice, ChoiceSchema, KickPlayer, Lobby, LobbyDeleted, LobbyJoined, LobbySettings, LobbyStatus, LobbyStatusUpdate, MultipleChoiceQuestion, MultipleChoiceQuestionAnswer, MultipleChoiceQuestionAnswerSchema, MultipleChoiceQuestionSchema, NextStep, Player, PlayerAnswerResult, PlayerJoined, PlayerKicked, PlayerLeft, PlayerUpdate, QuizFile, QuizFileSchema, SafeChoice, SafeChoiceSchema, SafeMultipleChoiceQuestion, SafeMultipleChoiceQuestionSchema, SafeShortAnswerQuestion, SafeShortAnswerQuestionSchema, SafeTrueFalseQuestion, SafeTrueFalseQuestionSchema, ShortAnswerQuestion, ShortAnswerQuestionAnswer, ShortAnswerQuestionAnswerSchema, ShortAnswerQuestionSchema, StartLobby, SubmissionResult, SubmitAnswer, SubmittedAnswer, TrueFalseQuestion, TrueFalseQuestionAnswer, TrueFalseQuestionAnswerSchema, TrueFalseQuestionSchema, UpdateLobbyAnswers, advanceLobby, calculateScore, createKickPlayerEvent, createLobby, createLobbyDeletedEvent, createLobbyJoinedEvent, createLobbyStatusUpdateEvent, createNextStepEvent, createPlayerAnswerResultEvent, createPlayerJoinedEvent, createPlayerKickedEvent, createPlayerLeftEvent, createPlayerUpdateEvent, createStartLobbyEvent, createSubmitAnswerEvent, createUpdateLobbyAnswersEvent, generateName, generateUniqueName, handleSubmission, isCorrect, isMultipleChoice, isQuestion, isShortAnswer, isSlide, isTrueFalse, sanitizeQuestion };
472
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/events/client/host/kick-player.ts","../src/events/client/host/next-step.ts","../src/events/client/host/start-lobby.ts","../src/types/questions/short-answer.ts","../src/types/questions/true-false.ts","../src/types/questions/multiple-choice.ts","../src/types/question.ts","../src/util/validator.ts","../src/events/client/player/submit-answer.ts","../src/events/server/lobby-deleted.ts","../src/types/quizfile.ts","../src/types/quiztheme.ts","../src/types/lobby.ts","../src/events/server/lobby-joined.ts","../src/types/slide.ts","../src/events/server/lobby-status-update.ts","../src/events/server/player-answer-result.ts","../src/events/server/player-joined.ts","../src/events/server/player-kicked.ts","../src/events/server/player-left.ts","../src/events/server/player-update.ts","../src/events/server/update-lobby-answers.ts","../src/managers/lobby-manager.ts","../src/types/events.ts","../src/types/quizstep.ts","../src/util/guards.ts","../src/util/names/names.ts","../src/util/sanitizer.ts","../src/util/score.ts"],"mappings":"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"}