@gbl-uzh/platform 0.4.13 → 0.4.16

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 (99) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/index.d.ts +7 -1473
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +11 -2012
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/SSELink.d.ts +9 -0
  7. package/dist/lib/SSELink.d.ts.map +1 -0
  8. package/dist/lib/SSELink.js +24 -0
  9. package/dist/lib/SSELink.js.map +1 -0
  10. package/dist/lib/apollo.d.ts +3 -4
  11. package/dist/lib/apollo.d.ts.map +1 -0
  12. package/dist/lib/apollo.js +50 -108
  13. package/dist/lib/apollo.js.map +1 -0
  14. package/dist/lib/constants.d.ts +8 -0
  15. package/dist/lib/constants.d.ts.map +1 -0
  16. package/dist/lib/logger.d.ts +4 -0
  17. package/dist/lib/logger.d.ts.map +1 -0
  18. package/dist/lib/logger.js +11 -0
  19. package/dist/lib/logger.js.map +1 -0
  20. package/dist/lib/pubsub.d.ts +5 -0
  21. package/dist/lib/pubsub.d.ts.map +1 -0
  22. package/dist/lib/pubsub.js +6 -0
  23. package/dist/lib/pubsub.js.map +1 -0
  24. package/dist/lib/util.d.ts +12 -13
  25. package/dist/lib/util.d.ts.map +1 -0
  26. package/dist/lib/util.js +63 -105
  27. package/dist/lib/util.js.map +1 -0
  28. package/dist/nexus.d.ts +11 -42
  29. package/dist/nexus.d.ts.map +1 -0
  30. package/dist/nexus.js +22 -2605
  31. package/dist/nexus.js.map +1 -0
  32. package/dist/ops/FGameData.graphql +1 -0
  33. package/dist/ops/FPeriodData.graphql +1 -0
  34. package/dist/ops/FPlayerData.graphql +0 -4
  35. package/dist/ops/FSegmentData.graphql +1 -0
  36. package/dist/ops/FStoryElementData.graphql +7 -0
  37. package/dist/ops/MActivateNextSegment.graphql +0 -3
  38. package/dist/ops/MAddGamePeriod.graphql +2 -2
  39. package/dist/ops/MUpdatePlayerData.graphql +1 -3
  40. package/dist/ops/QGame.graphql +2 -3
  41. package/dist/ops/QPastResults.graphql +0 -3
  42. package/dist/ops/QResult.graphql +4 -5
  43. package/dist/ops/QSpecificResults.graphql +11 -0
  44. package/dist/ops/QStoryElements.graphql +7 -0
  45. package/dist/schema.prisma +2 -3
  46. package/dist/services/AccountService.d.ts +65 -0
  47. package/dist/services/AccountService.d.ts.map +1 -0
  48. package/dist/services/AccountService.js +70 -0
  49. package/dist/services/AccountService.js.map +1 -0
  50. package/dist/services/EventService.d.ts +13 -0
  51. package/dist/services/EventService.d.ts.map +1 -0
  52. package/dist/services/EventService.js +180 -0
  53. package/dist/services/EventService.js.map +1 -0
  54. package/dist/services/GameService.d.ts +670 -0
  55. package/dist/services/GameService.d.ts.map +1 -0
  56. package/dist/services/GameService.js +1191 -0
  57. package/dist/services/GameService.js.map +1 -0
  58. package/dist/services/PlayService.d.ts +630 -0
  59. package/dist/services/PlayService.d.ts.map +1 -0
  60. package/dist/services/PlayService.js +534 -0
  61. package/dist/services/PlayService.js.map +1 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -0
  63. package/dist/types/Achievement.d.ts +4 -0
  64. package/dist/types/Achievement.d.ts.map +1 -0
  65. package/dist/types/Achievement.js +35 -0
  66. package/dist/types/Achievement.js.map +1 -0
  67. package/dist/types/Game.d.ts +5 -0
  68. package/dist/types/Game.d.ts.map +1 -0
  69. package/dist/types/Game.js +85 -0
  70. package/dist/types/Game.js.map +1 -0
  71. package/dist/types/LearningElement.d.ts +5 -0
  72. package/dist/types/LearningElement.d.ts.map +1 -0
  73. package/dist/types/LearningElement.js +55 -0
  74. package/dist/types/LearningElement.js.map +1 -0
  75. package/dist/types/Mutation.d.ts +10 -0
  76. package/dist/types/Mutation.d.ts.map +1 -0
  77. package/dist/types/Mutation.js +194 -0
  78. package/dist/types/Mutation.js.map +1 -0
  79. package/dist/types/Player.d.ts +9 -0
  80. package/dist/types/Player.d.ts.map +1 -0
  81. package/dist/types/Player.js +139 -0
  82. package/dist/types/Player.js.map +1 -0
  83. package/dist/types/Query.d.ts +3 -0
  84. package/dist/types/Query.d.ts.map +1 -0
  85. package/dist/types/Query.js +91 -0
  86. package/dist/types/Query.js.map +1 -0
  87. package/dist/types/StoryElement.d.ts +3 -0
  88. package/dist/types/StoryElement.d.ts.map +1 -0
  89. package/dist/types/StoryElement.js +27 -0
  90. package/dist/types/StoryElement.js.map +1 -0
  91. package/dist/types/Subscription.d.ts +3 -0
  92. package/dist/types/Subscription.d.ts.map +1 -0
  93. package/dist/types/Subscription.js +35 -0
  94. package/dist/types/Subscription.js.map +1 -0
  95. package/dist/types.d.ts +139 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +26 -0
  98. package/dist/types.js.map +1 -0
  99. package/package.json +42 -38
@@ -0,0 +1,670 @@
1
+ import * as DB from '@prisma/client';
2
+ import { PrismaClient } from '@prisma/client';
3
+ import * as yup from 'yup';
4
+ import { CtxWithFacts, CtxWithFactsAndSchema, CtxWithPrisma, UpdatePlayerDataArgs } from '../types.js';
5
+ type Context = CtxWithPrisma<PrismaClient>;
6
+ interface CreateGameArgs {
7
+ name: string;
8
+ playerCount: number;
9
+ }
10
+ export declare function createGame({ name, playerCount }: CreateGameArgs, ctx: Context, { roleAssigner }: {
11
+ roleAssigner?: (ix: number) => any;
12
+ }): Promise<{
13
+ players: {
14
+ number: number;
15
+ role: string | null;
16
+ token: string;
17
+ gameId: number;
18
+ id: string;
19
+ name: string;
20
+ isReady: boolean;
21
+ experience: number;
22
+ experienceToNext: number;
23
+ levelIx: number;
24
+ tutorialCompleted: boolean;
25
+ facts: import("@prisma/client/runtime/library").JsonValue;
26
+ achievementKeys: string[];
27
+ achievementIds: string[];
28
+ completedLearningElementIds: string[];
29
+ visitedStoryElementIds: string[];
30
+ createdAt: Date;
31
+ updatedAt: Date;
32
+ }[];
33
+ periods: {
34
+ gameId: number;
35
+ id: number;
36
+ facts: import("@prisma/client/runtime/library").JsonValue;
37
+ createdAt: Date;
38
+ updatedAt: Date;
39
+ index: number;
40
+ segmentCount: number;
41
+ activeSegmentIx: number;
42
+ activeSegmentId: number | null;
43
+ nextPeriodId: number | null;
44
+ }[];
45
+ } & {
46
+ id: number;
47
+ name: string;
48
+ createdAt: Date;
49
+ updatedAt: Date;
50
+ status: DB.$Enums.GameStatus;
51
+ activePeriodIx: number;
52
+ activePeriodId: number | null;
53
+ ownerId: string;
54
+ }>;
55
+ interface AddGamePeriodArgs<T> {
56
+ gameId: number;
57
+ facts: T;
58
+ segmentCount: number;
59
+ }
60
+ export declare function addGamePeriod<TFacts>({ gameId, facts, segmentCount }: AddGamePeriodArgs<TFacts>, ctx: Context, { schema, services }: CtxWithFactsAndSchema<TFacts, PrismaClient>): Promise<({
61
+ segments: ({
62
+ learningElements: {
63
+ id: string;
64
+ createdAt: Date;
65
+ updatedAt: Date;
66
+ title: string;
67
+ question: string;
68
+ feedback: string | null;
69
+ motivation: string | null;
70
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
71
+ }[];
72
+ storyElements: {
73
+ id: string;
74
+ createdAt: Date;
75
+ updatedAt: Date;
76
+ title: string;
77
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
78
+ type: DB.$Enums.StoryElementType;
79
+ content: string | null;
80
+ contentRole: import("@prisma/client/runtime/library").JsonValue | null;
81
+ }[];
82
+ } & {
83
+ gameId: number;
84
+ id: number;
85
+ facts: import("@prisma/client/runtime/library").JsonValue;
86
+ createdAt: Date;
87
+ updatedAt: Date;
88
+ index: number;
89
+ periodId: number;
90
+ periodIx: number;
91
+ countdownExpiresAt: Date | null;
92
+ countdownDurationMs: number | null;
93
+ nextSegmentId: number | null;
94
+ })[];
95
+ } & {
96
+ gameId: number;
97
+ id: number;
98
+ facts: import("@prisma/client/runtime/library").JsonValue;
99
+ createdAt: Date;
100
+ updatedAt: Date;
101
+ index: number;
102
+ segmentCount: number;
103
+ activeSegmentIx: number;
104
+ activeSegmentId: number | null;
105
+ nextPeriodId: number | null;
106
+ }) | null>;
107
+ interface AddPeriodSegmentArgs<TFacts> {
108
+ gameId: number;
109
+ periodIx: number;
110
+ facts: TFacts;
111
+ learningElements?: string[];
112
+ storyElements?: string[];
113
+ }
114
+ export declare function addPeriodSegment<TFacts>({ gameId, periodIx, facts, learningElements, storyElements, }: AddPeriodSegmentArgs<TFacts>, ctx: Context, { schema, services }: CtxWithFactsAndSchema<TFacts, PrismaClient>): Promise<({
115
+ learningElements: {
116
+ id: string;
117
+ createdAt: Date;
118
+ updatedAt: Date;
119
+ title: string;
120
+ question: string;
121
+ feedback: string | null;
122
+ motivation: string | null;
123
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
124
+ }[];
125
+ storyElements: {
126
+ id: string;
127
+ createdAt: Date;
128
+ updatedAt: Date;
129
+ title: string;
130
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
131
+ type: DB.$Enums.StoryElementType;
132
+ content: string | null;
133
+ contentRole: import("@prisma/client/runtime/library").JsonValue | null;
134
+ }[];
135
+ } & {
136
+ gameId: number;
137
+ id: number;
138
+ facts: import("@prisma/client/runtime/library").JsonValue;
139
+ createdAt: Date;
140
+ updatedAt: Date;
141
+ index: number;
142
+ periodId: number;
143
+ periodIx: number;
144
+ countdownExpiresAt: Date | null;
145
+ countdownDurationMs: number | null;
146
+ nextSegmentId: number | null;
147
+ }) | null>;
148
+ interface ActivateNextPeriodArgs {
149
+ gameId: number;
150
+ }
151
+ export declare function activateNextPeriod({ gameId }: ActivateNextPeriodArgs, ctx: Context, { services }: CtxWithFacts<any, PrismaClient>): Promise<[{
152
+ periods: ({
153
+ segments: {
154
+ gameId: number;
155
+ id: number;
156
+ facts: import("@prisma/client/runtime/library").JsonValue;
157
+ createdAt: Date;
158
+ updatedAt: Date;
159
+ index: number;
160
+ periodId: number;
161
+ periodIx: number;
162
+ countdownExpiresAt: Date | null;
163
+ countdownDurationMs: number | null;
164
+ nextSegmentId: number | null;
165
+ }[];
166
+ } & {
167
+ gameId: number;
168
+ id: number;
169
+ facts: import("@prisma/client/runtime/library").JsonValue;
170
+ createdAt: Date;
171
+ updatedAt: Date;
172
+ index: number;
173
+ segmentCount: number;
174
+ activeSegmentIx: number;
175
+ activeSegmentId: number | null;
176
+ nextPeriodId: number | null;
177
+ })[];
178
+ } & {
179
+ id: number;
180
+ name: string;
181
+ createdAt: Date;
182
+ updatedAt: Date;
183
+ status: DB.$Enums.GameStatus;
184
+ activePeriodIx: number;
185
+ activePeriodId: number | null;
186
+ ownerId: string;
187
+ }, {
188
+ gameId: number;
189
+ id: number;
190
+ facts: import("@prisma/client/runtime/library").JsonValue;
191
+ createdAt: Date;
192
+ updatedAt: Date;
193
+ index: number;
194
+ segmentCount: number;
195
+ activeSegmentIx: number;
196
+ activeSegmentId: number | null;
197
+ nextPeriodId: number | null;
198
+ }, ...any[]] | null>;
199
+ interface ActivateSegmentArgs {
200
+ gameId: number;
201
+ }
202
+ export declare function activateNextSegment({ gameId }: ActivateSegmentArgs, ctx: Context, { services }: CtxWithFacts<any, PrismaClient>): Promise<[{
203
+ players: {
204
+ number: number;
205
+ role: string | null;
206
+ token: string;
207
+ gameId: number;
208
+ id: string;
209
+ name: string;
210
+ isReady: boolean;
211
+ experience: number;
212
+ experienceToNext: number;
213
+ levelIx: number;
214
+ tutorialCompleted: boolean;
215
+ facts: import("@prisma/client/runtime/library").JsonValue;
216
+ achievementKeys: string[];
217
+ achievementIds: string[];
218
+ completedLearningElementIds: string[];
219
+ visitedStoryElementIds: string[];
220
+ createdAt: Date;
221
+ updatedAt: Date;
222
+ }[];
223
+ periods: ({
224
+ segments: {
225
+ gameId: number;
226
+ id: number;
227
+ facts: import("@prisma/client/runtime/library").JsonValue;
228
+ createdAt: Date;
229
+ updatedAt: Date;
230
+ index: number;
231
+ periodId: number;
232
+ periodIx: number;
233
+ countdownExpiresAt: Date | null;
234
+ countdownDurationMs: number | null;
235
+ nextSegmentId: number | null;
236
+ }[];
237
+ } & {
238
+ gameId: number;
239
+ id: number;
240
+ facts: import("@prisma/client/runtime/library").JsonValue;
241
+ createdAt: Date;
242
+ updatedAt: Date;
243
+ index: number;
244
+ segmentCount: number;
245
+ activeSegmentIx: number;
246
+ activeSegmentId: number | null;
247
+ nextPeriodId: number | null;
248
+ })[];
249
+ } & {
250
+ id: number;
251
+ name: string;
252
+ createdAt: Date;
253
+ updatedAt: Date;
254
+ status: DB.$Enums.GameStatus;
255
+ activePeriodIx: number;
256
+ activePeriodId: number | null;
257
+ ownerId: string;
258
+ }, {
259
+ gameId: number;
260
+ id: number;
261
+ facts: import("@prisma/client/runtime/library").JsonValue;
262
+ createdAt: Date;
263
+ updatedAt: Date;
264
+ index: number;
265
+ segmentCount: number;
266
+ activeSegmentIx: number;
267
+ activeSegmentId: number | null;
268
+ nextPeriodId: number | null;
269
+ }, {
270
+ gameId: number;
271
+ id: number;
272
+ facts: import("@prisma/client/runtime/library").JsonValue;
273
+ createdAt: Date;
274
+ updatedAt: Date;
275
+ index: number;
276
+ periodId: number;
277
+ periodIx: number;
278
+ countdownExpiresAt: Date | null;
279
+ countdownDurationMs: number | null;
280
+ nextSegmentId: number | null;
281
+ }, ...any[]] | [{
282
+ players: {
283
+ number: number;
284
+ role: string | null;
285
+ token: string;
286
+ gameId: number;
287
+ id: string;
288
+ name: string;
289
+ isReady: boolean;
290
+ experience: number;
291
+ experienceToNext: number;
292
+ levelIx: number;
293
+ tutorialCompleted: boolean;
294
+ facts: import("@prisma/client/runtime/library").JsonValue;
295
+ achievementKeys: string[];
296
+ achievementIds: string[];
297
+ completedLearningElementIds: string[];
298
+ visitedStoryElementIds: string[];
299
+ createdAt: Date;
300
+ updatedAt: Date;
301
+ }[];
302
+ periods: ({
303
+ segments: {
304
+ gameId: number;
305
+ id: number;
306
+ facts: import("@prisma/client/runtime/library").JsonValue;
307
+ createdAt: Date;
308
+ updatedAt: Date;
309
+ index: number;
310
+ periodId: number;
311
+ periodIx: number;
312
+ countdownExpiresAt: Date | null;
313
+ countdownDurationMs: number | null;
314
+ nextSegmentId: number | null;
315
+ }[];
316
+ } & {
317
+ gameId: number;
318
+ id: number;
319
+ facts: import("@prisma/client/runtime/library").JsonValue;
320
+ createdAt: Date;
321
+ updatedAt: Date;
322
+ index: number;
323
+ segmentCount: number;
324
+ activeSegmentIx: number;
325
+ activeSegmentId: number | null;
326
+ nextPeriodId: number | null;
327
+ })[];
328
+ } & {
329
+ id: number;
330
+ name: string;
331
+ createdAt: Date;
332
+ updatedAt: Date;
333
+ status: DB.$Enums.GameStatus;
334
+ activePeriodIx: number;
335
+ activePeriodId: number | null;
336
+ ownerId: string;
337
+ }, {
338
+ results: {
339
+ gameId: number;
340
+ id: number;
341
+ facts: import("@prisma/client/runtime/library").JsonValue;
342
+ createdAt: Date;
343
+ updatedAt: Date;
344
+ playerId: string;
345
+ periodId: number;
346
+ periodIx: number;
347
+ type: DB.$Enums.PlayerResultType;
348
+ segmentIx: number | null;
349
+ segmentId: number | null;
350
+ }[];
351
+ } & {
352
+ gameId: number;
353
+ id: number;
354
+ facts: import("@prisma/client/runtime/library").JsonValue;
355
+ createdAt: Date;
356
+ updatedAt: Date;
357
+ index: number;
358
+ periodId: number;
359
+ periodIx: number;
360
+ countdownExpiresAt: Date | null;
361
+ countdownDurationMs: number | null;
362
+ nextSegmentId: number | null;
363
+ }, DB.Prisma.BatchPayload, ...any[]] | null>;
364
+ export declare function updatePlayerData<PlayerFactsType>({ name, facts }: UpdatePlayerDataArgs<PlayerFactsType>, ctx: Context, { schema }: {
365
+ schema: yup.Schema<PlayerFactsType>;
366
+ }): Promise<({
367
+ level: {
368
+ id: number;
369
+ index: number;
370
+ description: string;
371
+ image: string;
372
+ requiredXP: number;
373
+ };
374
+ achievements: ({
375
+ achievement: {
376
+ id: string;
377
+ name: string;
378
+ createdAt: Date;
379
+ updatedAt: Date;
380
+ description: string;
381
+ image: string | null;
382
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
383
+ when: DB.$Enums.AchievementFrequency;
384
+ onEventId: string;
385
+ };
386
+ } & {
387
+ gameId: number;
388
+ id: number;
389
+ createdAt: Date;
390
+ updatedAt: Date;
391
+ count: number;
392
+ achievementId: string;
393
+ playerId: string;
394
+ periodId: number;
395
+ })[];
396
+ } & {
397
+ number: number;
398
+ role: string | null;
399
+ token: string;
400
+ gameId: number;
401
+ id: string;
402
+ name: string;
403
+ isReady: boolean;
404
+ experience: number;
405
+ experienceToNext: number;
406
+ levelIx: number;
407
+ tutorialCompleted: boolean;
408
+ facts: import("@prisma/client/runtime/library").JsonValue;
409
+ achievementKeys: string[];
410
+ achievementIds: string[];
411
+ completedLearningElementIds: string[];
412
+ visitedStoryElementIds: string[];
413
+ createdAt: Date;
414
+ updatedAt: Date;
415
+ }) | null>;
416
+ export declare function getGames(args: any, ctx: Context): Promise<{
417
+ activeSegmentIx: number | undefined;
418
+ _count: {
419
+ players: number;
420
+ };
421
+ activePeriod: {
422
+ gameId: number;
423
+ id: number;
424
+ facts: import("@prisma/client/runtime/library").JsonValue;
425
+ createdAt: Date;
426
+ updatedAt: Date;
427
+ index: number;
428
+ segmentCount: number;
429
+ activeSegmentIx: number;
430
+ activeSegmentId: number | null;
431
+ nextPeriodId: number | null;
432
+ } | null;
433
+ id: number;
434
+ name: string;
435
+ createdAt: Date;
436
+ updatedAt: Date;
437
+ status: DB.$Enums.GameStatus;
438
+ activePeriodIx: number;
439
+ activePeriodId: number | null;
440
+ ownerId: string;
441
+ }[]>;
442
+ export declare function getGame(args: any, ctx: Context): Promise<({
443
+ players: ({
444
+ level: {
445
+ id: number;
446
+ index: number;
447
+ description: string;
448
+ image: string;
449
+ requiredXP: number;
450
+ };
451
+ achievements: {
452
+ gameId: number;
453
+ id: number;
454
+ createdAt: Date;
455
+ updatedAt: Date;
456
+ count: number;
457
+ achievementId: string;
458
+ playerId: string;
459
+ periodId: number;
460
+ }[];
461
+ } & {
462
+ number: number;
463
+ role: string | null;
464
+ token: string;
465
+ gameId: number;
466
+ id: string;
467
+ name: string;
468
+ isReady: boolean;
469
+ experience: number;
470
+ experienceToNext: number;
471
+ levelIx: number;
472
+ tutorialCompleted: boolean;
473
+ facts: import("@prisma/client/runtime/library").JsonValue;
474
+ achievementKeys: string[];
475
+ achievementIds: string[];
476
+ completedLearningElementIds: string[];
477
+ visitedStoryElementIds: string[];
478
+ createdAt: Date;
479
+ updatedAt: Date;
480
+ })[];
481
+ periods: ({
482
+ segments: ({
483
+ learningElements: {
484
+ id: string;
485
+ createdAt: Date;
486
+ updatedAt: Date;
487
+ title: string;
488
+ question: string;
489
+ feedback: string | null;
490
+ motivation: string | null;
491
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
492
+ }[];
493
+ storyElements: {
494
+ id: string;
495
+ createdAt: Date;
496
+ updatedAt: Date;
497
+ title: string;
498
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
499
+ type: DB.$Enums.StoryElementType;
500
+ content: string | null;
501
+ contentRole: import("@prisma/client/runtime/library").JsonValue | null;
502
+ }[];
503
+ } & {
504
+ gameId: number;
505
+ id: number;
506
+ facts: import("@prisma/client/runtime/library").JsonValue;
507
+ createdAt: Date;
508
+ updatedAt: Date;
509
+ index: number;
510
+ periodId: number;
511
+ periodIx: number;
512
+ countdownExpiresAt: Date | null;
513
+ countdownDurationMs: number | null;
514
+ nextSegmentId: number | null;
515
+ })[];
516
+ } & {
517
+ gameId: number;
518
+ id: number;
519
+ facts: import("@prisma/client/runtime/library").JsonValue;
520
+ createdAt: Date;
521
+ updatedAt: Date;
522
+ index: number;
523
+ segmentCount: number;
524
+ activeSegmentIx: number;
525
+ activeSegmentId: number | null;
526
+ nextPeriodId: number | null;
527
+ })[];
528
+ activePeriod: ({
529
+ segments: {
530
+ gameId: number;
531
+ id: number;
532
+ facts: import("@prisma/client/runtime/library").JsonValue;
533
+ createdAt: Date;
534
+ updatedAt: Date;
535
+ index: number;
536
+ periodId: number;
537
+ periodIx: number;
538
+ countdownExpiresAt: Date | null;
539
+ countdownDurationMs: number | null;
540
+ nextSegmentId: number | null;
541
+ }[];
542
+ activeSegment: {
543
+ gameId: number;
544
+ id: number;
545
+ facts: import("@prisma/client/runtime/library").JsonValue;
546
+ createdAt: Date;
547
+ updatedAt: Date;
548
+ index: number;
549
+ periodId: number;
550
+ periodIx: number;
551
+ countdownExpiresAt: Date | null;
552
+ countdownDurationMs: number | null;
553
+ nextSegmentId: number | null;
554
+ } | null;
555
+ } & {
556
+ gameId: number;
557
+ id: number;
558
+ facts: import("@prisma/client/runtime/library").JsonValue;
559
+ createdAt: Date;
560
+ updatedAt: Date;
561
+ index: number;
562
+ segmentCount: number;
563
+ activeSegmentIx: number;
564
+ activeSegmentId: number | null;
565
+ nextPeriodId: number | null;
566
+ }) | null;
567
+ } & {
568
+ id: number;
569
+ name: string;
570
+ createdAt: Date;
571
+ updatedAt: Date;
572
+ status: DB.$Enums.GameStatus;
573
+ activePeriodIx: number;
574
+ activePeriodId: number | null;
575
+ ownerId: string;
576
+ }) | null>;
577
+ export declare function getGameFromContext(ctx: Context): Promise<({
578
+ activePeriod: {
579
+ gameId: number;
580
+ id: number;
581
+ facts: import("@prisma/client/runtime/library").JsonValue;
582
+ createdAt: Date;
583
+ updatedAt: Date;
584
+ index: number;
585
+ segmentCount: number;
586
+ activeSegmentIx: number;
587
+ activeSegmentId: number | null;
588
+ nextPeriodId: number | null;
589
+ } | null;
590
+ } & {
591
+ id: number;
592
+ name: string;
593
+ createdAt: Date;
594
+ updatedAt: Date;
595
+ status: DB.$Enums.GameStatus;
596
+ activePeriodIx: number;
597
+ activePeriodId: number | null;
598
+ ownerId: string;
599
+ }) | null>;
600
+ export declare function getLearningElements(args: any, ctx: Context): Promise<({
601
+ options: {
602
+ id: number;
603
+ feedback: string | null;
604
+ content: string;
605
+ correct: boolean;
606
+ learningElementSlug: string;
607
+ }[];
608
+ } & {
609
+ id: string;
610
+ createdAt: Date;
611
+ updatedAt: Date;
612
+ title: string;
613
+ question: string;
614
+ feedback: string | null;
615
+ motivation: string | null;
616
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
617
+ })[]>;
618
+ export declare function getStoryElements(args: any, ctx: Context): Promise<{
619
+ id: string;
620
+ createdAt: Date;
621
+ updatedAt: Date;
622
+ title: string;
623
+ reward: import("@prisma/client/runtime/library").JsonValue | null;
624
+ type: DB.$Enums.StoryElementType;
625
+ content: string | null;
626
+ contentRole: import("@prisma/client/runtime/library").JsonValue | null;
627
+ }[]>;
628
+ export declare function computePeriodStartResults({ results, players, activePeriodIx, gameId, periodFacts }: {
629
+ results: any;
630
+ players: any;
631
+ activePeriodIx: any;
632
+ gameId: any;
633
+ periodFacts: any;
634
+ }, ctx: any, { services }: {
635
+ services: any;
636
+ }): {
637
+ results: any;
638
+ extras: any[];
639
+ };
640
+ export declare function computePeriodEndResults({ segmentEndResults, players, activeSegmentResults, periodFacts, periodDecisions, segmentFacts, activePeriodIx, activeSegmentIx, gameId, }: {
641
+ segmentEndResults: any;
642
+ players: any;
643
+ activeSegmentResults: any;
644
+ periodFacts: any;
645
+ periodDecisions: any;
646
+ segmentFacts: any;
647
+ activePeriodIx: any;
648
+ activeSegmentIx: any;
649
+ gameId: any;
650
+ }, ctx: Context, { services }: {
651
+ services: any;
652
+ }): Promise<{
653
+ extras: any[];
654
+ results: any;
655
+ promises: Promise<any>[];
656
+ }>;
657
+ export declare function computeSegmentStartResults(game: any, ctx: any, { services }: {
658
+ services: any;
659
+ }): {
660
+ results: any;
661
+ extras: any[];
662
+ };
663
+ export declare function computeSegmentEndResults(game: any, ctx: any, { services }: {
664
+ services: any;
665
+ }): {
666
+ results: any;
667
+ extras: any[];
668
+ };
669
+ export {};
670
+ //# sourceMappingURL=GameService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameService.d.ts","sourceRoot":"","sources":["../../src/services/GameService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI7C,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACrB,MAAM,aAAa,CAAA;AAGpB,KAAK,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAE1C,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,UAAU,CAC9B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,cAAc,EACrC,GAAG,EAAE,OAAO,EACZ,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCzD;AAED,UAAU,iBAAiB,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,CAAC,CAAA;IACR,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,aAAa,CAAC,MAAM,EACxC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAC1D,GAAG,EAAE,OAAO,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA6FlE;AAED,UAAU,oBAAoB,CAAC,MAAM;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAC3C,EACE,MAAM,EACN,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,aAAa,GACd,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAC/B,GAAG,EAAE,OAAO,EACZ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuGlE;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAClC,GAAG,EAAE,OAAO,EACZ,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkZ9C;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,mBAAmB,CACvC,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAC/B,GAAG,EAAE,OAAO,EACZ,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAoL9C;AAED,wBAAsB,gBAAgB,CAAC,eAAe,EACpD,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,eAAe,CAAC,EACtD,GAAG,EAAE,OAAO,EACZ,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkCpD;AAED,wBAAsB,QAAQ,CAAC,IAAI,KAAA,EAAE,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;KAgBhD;AAED,wBAAsB,OAAO,CAAC,IAAI,KAAA,EAAE,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAiD/C;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;WASpD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,KAAA,EAAE,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;MAM3D;AAED,wBAAsB,gBAAgB,CAAC,IAAI,KAAA,EAAE,GAAG,EAAE,OAAO;;;;;;;;;KAExD;AAyCD,wBAAgB,yBAAyB,CACvC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE;;;;;;CAAA,EACzD,GAAG,KAAA,EACH,EAAE,QAAQ,EAAE;;CAAA;;;EA8Fb;AAED,wBAAsB,uBAAuB,CAC3C,EACE,iBAAiB,EACjB,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,MAAM,GACP;;;;;;;;;;CAAA,EACD,GAAG,EAAE,OAAO,EACZ,EAAE,QAAQ,EAAE;;CAAA;;;;GA+Fb;AAED,wBAAgB,0BAA0B,CAAC,IAAI,KAAA,EAAE,GAAG,KAAA,EAAE,EAAE,QAAQ,EAAE;;CAAA;;;EA8HjE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,KAAA,EAAE,GAAG,KAAA,EAAE,EAAE,QAAQ,EAAE;;CAAA;;;EAmD/D"}