@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,4 @@
1
+ export declare const AchievementFrequency: import("nexus/dist/core.js").NexusEnumTypeDef<"AchievementFrequency">;
2
+ export declare const Achievement: import("nexus/dist/core.js").NexusObjectTypeDef<"Achievement">;
3
+ export declare const AchievementInstance: import("nexus/dist/core.js").NexusObjectTypeDef<"AchievementInstance">;
4
+ //# sourceMappingURL=Achievement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Achievement.d.ts","sourceRoot":"","sources":["../../src/types/Achievement.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,uEAG/B,CAAA;AAEF,eAAO,MAAM,WAAW,gEAiBtB,CAAA;AAEF,eAAO,MAAM,mBAAmB,wEAU9B,CAAA"}
@@ -0,0 +1,35 @@
1
+ import * as DB from '@prisma/client';
2
+ import { enumType, objectType } from 'nexus';
3
+
4
+ const AchievementFrequency = enumType({
5
+ name: 'AchievementFrequency',
6
+ members: Object.values(DB.AchievementFrequency),
7
+ });
8
+ const Achievement = objectType({
9
+ name: 'Achievement',
10
+ definition(t) {
11
+ t.nonNull.id('id');
12
+ t.nonNull.string('name');
13
+ t.nonNull.string('description');
14
+ t.string('image');
15
+ t.nonNull.field('when', {
16
+ type: AchievementFrequency,
17
+ });
18
+ t.field('reward', {
19
+ type: 'JSONObject',
20
+ });
21
+ },
22
+ });
23
+ const AchievementInstance = objectType({
24
+ name: 'AchievementInstance',
25
+ definition(t) {
26
+ t.nonNull.int('id');
27
+ t.nonNull.int('count');
28
+ t.nonNull.field('achievement', {
29
+ type: Achievement,
30
+ });
31
+ },
32
+ });
33
+
34
+ export { Achievement, AchievementFrequency, AchievementInstance };
35
+ //# sourceMappingURL=Achievement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Achievement.js","sources":["../../src/types/Achievement.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGO,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC3C,IAAA,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC;AAChD,CAAA;AAEM,MAAM,WAAW,GAAG,UAAU,CAAC;AACpC,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;AAElB,QAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,QAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;AAC/B,QAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAEjB,QAAA,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,YAAA,IAAI,EAAE,oBAAoB;AAC3B,SAAA,CAAC;AAEF,QAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,EAAE,YAAY;AACnB,SAAA,CAAC;KACH;AACF,CAAA;AAEM,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC5C,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAEnB,QAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AACtB,QAAA,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;AAC7B,YAAA,IAAI,EAAE,WAAW;AAClB,SAAA,CAAC;KACH;AACF,CAAA;;;;"}
@@ -0,0 +1,5 @@
1
+ export declare const GameStatus: import("nexus/dist/core.js").NexusEnumTypeDef<"GameStatus">;
2
+ export declare const Game: import("nexus/dist/core.js").NexusObjectTypeDef<"Game">;
3
+ export declare const Period: import("nexus/dist/core.js").NexusObjectTypeDef<"Period">;
4
+ export declare const PeriodSegment: import("nexus/dist/core.js").NexusObjectTypeDef<"PeriodSegment">;
5
+ //# sourceMappingURL=Game.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Game.d.ts","sourceRoot":"","sources":["../../src/types/Game.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,6DAGrB,CAAA;AAEF,eAAO,MAAM,IAAI,yDAuBf,CAAA;AAEF,eAAO,MAAM,MAAM,2DA0BjB,CAAA;AAEF,eAAO,MAAM,aAAa,kEA+BxB,CAAA"}
@@ -0,0 +1,85 @@
1
+ import * as DB from '@prisma/client';
2
+ import { enumType, objectType } from 'nexus';
3
+ import { LearningElement } from './LearningElement.js';
4
+ import { Player, PlayerAction, PlayerResult } from './Player.js';
5
+ import { StoryElement } from './StoryElement.js';
6
+
7
+ const GameStatus = enumType({
8
+ name: 'GameStatus',
9
+ members: Object.values(DB.GameStatus),
10
+ });
11
+ const Game = objectType({
12
+ name: 'Game',
13
+ definition(t) {
14
+ t.nonNull.id('id');
15
+ t.nonNull.field('status', {
16
+ type: GameStatus,
17
+ });
18
+ t.nonNull.string('name');
19
+ t.int('activePeriodIx');
20
+ t.field('activePeriod', {
21
+ type: Period,
22
+ });
23
+ t.int('activeSegmentIx');
24
+ t.nonNull.list.nonNull.field('players', {
25
+ type: Player,
26
+ });
27
+ t.nonNull.list.nonNull.field('periods', {
28
+ type: Period,
29
+ });
30
+ },
31
+ });
32
+ const Period = objectType({
33
+ name: 'Period',
34
+ definition(t) {
35
+ t.nonNull.id('id');
36
+ t.nonNull.int('index');
37
+ t.int('activeSegmentIx');
38
+ t.field('activeSegment', {
39
+ type: PeriodSegment,
40
+ });
41
+ t.nonNull.list.nonNull.field('actions', {
42
+ type: PlayerAction,
43
+ });
44
+ t.nonNull.list.nonNull.field('results', {
45
+ type: PlayerResult,
46
+ });
47
+ t.nonNull.list.nonNull.field('segments', {
48
+ type: PeriodSegment,
49
+ });
50
+ t.nonNull.field('facts', {
51
+ type: 'JSONObject',
52
+ });
53
+ t.int('segmentCount');
54
+ },
55
+ });
56
+ const PeriodSegment = objectType({
57
+ name: 'PeriodSegment',
58
+ definition(t) {
59
+ t.nonNull.id('id');
60
+ t.nonNull.int('index');
61
+ t.nonNull.int('periodIx');
62
+ t.field('countdownExpiresAt', {
63
+ type: 'DateTime',
64
+ });
65
+ t.int('countdownDurationMs');
66
+ t.nonNull.list.nonNull.field('actions', {
67
+ type: PlayerAction,
68
+ });
69
+ t.nonNull.list.nonNull.field('results', {
70
+ type: PlayerResult,
71
+ });
72
+ t.nonNull.list.nonNull.field('learningElements', {
73
+ type: LearningElement,
74
+ });
75
+ t.nonNull.list.nonNull.field('storyElements', {
76
+ type: StoryElement,
77
+ });
78
+ t.nonNull.field('facts', {
79
+ type: 'JSONObject',
80
+ });
81
+ },
82
+ });
83
+
84
+ export { Game, GameStatus, Period, PeriodSegment };
85
+ //# sourceMappingURL=Game.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Game.js","sources":["../../src/types/Game.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const LearningAnswerOption: import("nexus/dist/core.js").NexusObjectTypeDef<"LearningAnswerOption">;
2
+ export declare const LearningElementState: import("nexus/dist/core.js").NexusObjectTypeDef<"LearningElementState">;
3
+ export declare const LearningElementAttempt: import("nexus/dist/core.js").NexusObjectTypeDef<"LearningElementAttempt">;
4
+ export declare const LearningElement: import("nexus/dist/core.js").NexusObjectTypeDef<"LearningElement">;
5
+ //# sourceMappingURL=LearningElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningElement.d.ts","sourceRoot":"","sources":["../../src/types/LearningElement.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,yEAQ/B,CAAA;AAEF,eAAO,MAAM,oBAAoB,yEAa/B,CAAA;AAEF,eAAO,MAAM,sBAAsB,2EAgBjC,CAAA;AAEF,eAAO,MAAM,eAAe,oEAiB1B,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { objectType } from 'nexus';
2
+ import { Player } from './Player.js';
3
+
4
+ const LearningAnswerOption = objectType({
5
+ name: 'LearningAnswerOption',
6
+ definition(t) {
7
+ t.nonNull.id('id');
8
+ t.nonNull.string('content');
9
+ t.nonNull.boolean('correct');
10
+ },
11
+ });
12
+ const LearningElementState = objectType({
13
+ name: 'LearningElementState',
14
+ definition(t) {
15
+ t.id('id');
16
+ t.field('element', {
17
+ type: LearningElement,
18
+ });
19
+ t.string('state');
20
+ t.string('solution');
21
+ },
22
+ });
23
+ const LearningElementAttempt = objectType({
24
+ name: 'LearningElementAttempt',
25
+ definition(t) {
26
+ t.id('id');
27
+ t.int('pointsAchieved');
28
+ t.int('pointsMax');
29
+ t.field('element', {
30
+ type: LearningElement,
31
+ });
32
+ t.field('player', {
33
+ type: Player,
34
+ });
35
+ },
36
+ });
37
+ const LearningElement = objectType({
38
+ name: 'LearningElement',
39
+ definition(t) {
40
+ t.nonNull.id('id');
41
+ t.nonNull.string('title');
42
+ t.nonNull.string('question');
43
+ t.field('reward', {
44
+ type: 'JSONObject',
45
+ });
46
+ t.string('motivation');
47
+ t.nonNull.list.nonNull.field('options', {
48
+ type: LearningAnswerOption,
49
+ });
50
+ t.string('feedback');
51
+ },
52
+ });
53
+
54
+ export { LearningAnswerOption, LearningElement, LearningElementAttempt, LearningElementState };
55
+ //# sourceMappingURL=LearningElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningElement.js","sources":["../../src/types/LearningElement.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGO,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC7C,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;AAElB,QAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;KAC7B;AACF,CAAA;AAEM,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC7C,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAEV,QAAA,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,EAAE,eAAe;AACtB,SAAA,CAAC;AAEF,QAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAEjB,QAAA,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;KACrB;AACF,CAAA;AAEM,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAC/C,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AAEV,QAAA,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACvB,QAAA,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;AAElB,QAAA,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,EAAE,eAAe;AACtB,SAAA,CAAC;AAEF,QAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,EAAE,MAAM;AACb,SAAA,CAAC;KACH;AACF,CAAA;AAEM,MAAM,eAAe,GAAG,UAAU,CAAC;AACxC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;AAElB,QAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACzB,QAAA,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;AAC5B,QAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,EAAE,YAAY;AACnB,SAAA,CAAC;AACF,QAAA,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAEtB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;AACtC,YAAA,IAAI,EAAE,oBAAoB;AAC3B,SAAA,CAAC;AACF,QAAA,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;KACrB;AACF,CAAA;;;;"}
@@ -0,0 +1,10 @@
1
+ interface GenerateBaseMutationsArgs {
2
+ services?: any;
3
+ schemas?: any;
4
+ inputTypes?: any;
5
+ roleAssigner?: (ix: number) => any;
6
+ }
7
+ export declare function generateBaseMutations<PeriodFacts, PeriodSegmentFacts, PlayerFacts>({ services, roleAssigner, schemas, inputTypes, }?: GenerateBaseMutationsArgs): import("nexus/dist/core.js").NexusObjectTypeDef<"Mutation">;
8
+ export declare const Mutation: import("nexus/dist/core.js").NexusObjectTypeDef<"Mutation">;
9
+ export {};
10
+ //# sourceMappingURL=Mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mutation.d.ts","sourceRoot":"","sources":["../../src/types/Mutation.ts"],"names":[],"mappings":"AAuBA,UAAU,yBAAyB;IACjC,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,UAAU,CAAC,EAAE,GAAG,CAAA;IAEhB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAA;CACnC;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,EACA,QAA0B,EAC1B,YAAY,EACZ,OAAwB,EACxB,UAA8B,GAC/B,GAAE,yBAA8B,+DA2MhC;AAED,eAAO,MAAM,QAAQ,6DAA0B,CAAA"}
@@ -0,0 +1,194 @@
1
+ import * as DB from '@prisma/client';
2
+ import { objectType, nonNull, booleanArg, stringArg, intArg, arg, list, idArg } from 'nexus';
3
+ import { loginAsTeam, logoutAsTeam } from '../services/AccountService.js';
4
+ import { createGame, addGamePeriod, addPeriodSegment, activateNextPeriod, activateNextSegment, getGameFromContext, updatePlayerData } from '../services/GameService.js';
5
+ import { updateReadyState, performAction, attemptLearningElement, markStoryElement, saveDecisions, addCountdown } from '../services/PlayService.js';
6
+ import { Game, Period, PeriodSegment } from './Game.js';
7
+ import { LearningElementAttempt } from './LearningElement.js';
8
+ import { Player, PlayerResult, PlayerDecision } from './Player.js';
9
+
10
+ const defaultServices = {};
11
+ const defaultSchemas = {};
12
+ const defaultInputTypes = {};
13
+ function generateBaseMutations({ services = defaultServices, roleAssigner, schemas = defaultSchemas, inputTypes = defaultInputTypes, } = {}) {
14
+ return objectType({
15
+ name: 'Mutation',
16
+ definition(t) {
17
+ t.field('updateReadyState', {
18
+ type: Player,
19
+ args: {
20
+ isReady: nonNull(booleanArg()),
21
+ },
22
+ async resolve(_, args, ctx) {
23
+ return updateReadyState(args, ctx);
24
+ },
25
+ });
26
+ t.field('loginAsTeam', {
27
+ type: Player,
28
+ args: {
29
+ token: nonNull(stringArg()),
30
+ },
31
+ async resolve(_, args, ctx) {
32
+ return loginAsTeam(args, ctx);
33
+ },
34
+ });
35
+ t.boolean('logoutAsTeam', {
36
+ async resolve(_, __, ctx) {
37
+ return logoutAsTeam(ctx);
38
+ },
39
+ });
40
+ t.field('createGame', {
41
+ type: Game,
42
+ args: {
43
+ name: nonNull(stringArg()),
44
+ playerCount: nonNull(intArg()),
45
+ },
46
+ async resolve(_, args, ctx) {
47
+ return createGame(args, ctx, {
48
+ roleAssigner,
49
+ });
50
+ },
51
+ });
52
+ t.field('addGamePeriod', {
53
+ type: Period,
54
+ args: {
55
+ gameId: nonNull(intArg()),
56
+ facts: arg({
57
+ type: nonNull(inputTypes.PeriodFactsInput),
58
+ }),
59
+ segmentCount: nonNull(intArg()),
60
+ },
61
+ async resolve(_, args, ctx) {
62
+ return addGamePeriod(args, ctx, {
63
+ schema: schemas.PeriodFactsSchema,
64
+ services,
65
+ });
66
+ },
67
+ });
68
+ t.field('addPeriodSegment', {
69
+ type: PeriodSegment,
70
+ args: {
71
+ gameId: nonNull(intArg()),
72
+ periodIx: nonNull(intArg()),
73
+ facts: arg({
74
+ type: nonNull(inputTypes.PeriodSegmentFactsInput),
75
+ }),
76
+ storyElements: list(stringArg()),
77
+ learningElements: list(stringArg()),
78
+ },
79
+ async resolve(_, args, ctx) {
80
+ return addPeriodSegment(args, ctx, {
81
+ schema: schemas.PeriodSegmentFactsSchema,
82
+ services,
83
+ });
84
+ },
85
+ });
86
+ t.field('activateNextPeriod', {
87
+ type: Game,
88
+ args: {
89
+ gameId: nonNull(intArg()),
90
+ },
91
+ async resolve(_, args, ctx) {
92
+ const results = await activateNextPeriod(args, ctx, {
93
+ services,
94
+ });
95
+ if (!results)
96
+ return;
97
+ return results[0];
98
+ },
99
+ });
100
+ t.field('activateNextSegment', {
101
+ type: Game,
102
+ args: {
103
+ gameId: nonNull(intArg()),
104
+ },
105
+ async resolve(_, args, ctx) {
106
+ const results = await activateNextSegment(args, ctx, {
107
+ services,
108
+ });
109
+ if (!results)
110
+ return;
111
+ return results[0];
112
+ },
113
+ });
114
+ t.field('performAction', {
115
+ type: PlayerResult,
116
+ args: {
117
+ type: nonNull(stringArg()),
118
+ payload: nonNull(stringArg()),
119
+ },
120
+ async resolve(_, args, ctx) {
121
+ const currentGame = await getGameFromContext(ctx);
122
+ if (!currentGame?.activePeriod)
123
+ return null;
124
+ const facts = JSON.parse(args.payload);
125
+ const result = await performAction({
126
+ gameId: currentGame.id,
127
+ actionType: args.type,
128
+ playerId: ctx.user.sub,
129
+ periodIx: currentGame.activePeriodIx,
130
+ segmentIx: currentGame.activePeriod.activeSegmentIx,
131
+ facts,
132
+ }, ctx, { services });
133
+ return result;
134
+ },
135
+ });
136
+ t.field('attemptLearningElement', {
137
+ type: LearningElementAttempt,
138
+ args: {
139
+ elementId: nonNull(idArg()),
140
+ selection: nonNull(stringArg()),
141
+ },
142
+ async resolve(_, args, ctx) {
143
+ return attemptLearningElement(args, ctx);
144
+ },
145
+ });
146
+ t.field('markStoryElement', {
147
+ type: Player,
148
+ args: {
149
+ elementId: nonNull(idArg()),
150
+ },
151
+ async resolve(_, args, ctx) {
152
+ return markStoryElement(args, ctx);
153
+ },
154
+ });
155
+ t.field('updatePlayerData', {
156
+ type: Player,
157
+ args: {
158
+ name: stringArg(),
159
+ facts: stringArg(),
160
+ },
161
+ async resolve(_, args, ctx) {
162
+ const facts = args.facts ? JSON.parse(args.facts) : {};
163
+ return updatePlayerData({ ...args, facts }, ctx, { schema: schemas.PlayerFactsSchema });
164
+ },
165
+ });
166
+ t.field('saveConsolidationDecision', {
167
+ type: PlayerDecision,
168
+ args: {
169
+ payload: nonNull(stringArg()),
170
+ },
171
+ async resolve(_, args, ctx) {
172
+ const facts = JSON.parse(args.payload);
173
+ return saveDecisions({
174
+ decisionType: DB.PlayerDecisionType.CONSOLIDATION,
175
+ facts,
176
+ }, ctx);
177
+ },
178
+ });
179
+ t.boolean('addCountdown', {
180
+ args: {
181
+ gameId: nonNull(intArg()),
182
+ seconds: nonNull(intArg()),
183
+ },
184
+ async resolve(_, args, ctx) {
185
+ return addCountdown(args, ctx);
186
+ },
187
+ });
188
+ },
189
+ });
190
+ }
191
+ const Mutation = generateBaseMutations();
192
+
193
+ export { Mutation, generateBaseMutations };
194
+ //# sourceMappingURL=Mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mutation.js","sources":["../../src/types/Mutation.ts"],"sourcesContent":[null],"names":["PlayService.updateReadyState","AccountService.loginAsTeam","AccountService.logoutAsTeam","GameService.createGame","GameService.addGamePeriod","GameService.addPeriodSegment","GameService.activateNextPeriod","GameService.activateNextSegment","GameService.getGameFromContext","PlayService.performAction","PlayService.attemptLearningElement","PlayService.markStoryElement","GameService.updatePlayerData","PlayService.saveDecisions","PlayService.addCountdown"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const PlayerDecisionType: import("nexus/dist/core.js").NexusEnumTypeDef<"PlayerDecisionType">;
2
+ export declare const PlayerResultType: import("nexus/dist/core.js").NexusEnumTypeDef<"PlayerResultType">;
3
+ export declare const PlayerLevel: import("nexus/dist/core.js").NexusObjectTypeDef<"PlayerLevel">;
4
+ export declare const PlayerState: import("nexus/dist/core.js").NexusObjectTypeDef<"PlayerState">;
5
+ export declare const Player: import("nexus/dist/core.js").NexusObjectTypeDef<"Player">;
6
+ export declare const PlayerResult: import("nexus/dist/core.js").NexusObjectTypeDef<"PlayerResult">;
7
+ export declare const PlayerAction: import("nexus/dist/core.js").NexusObjectTypeDef<"PlayerAction">;
8
+ export declare const PlayerDecision: import("nexus/dist/core.js").NexusObjectTypeDef<"PlayerDecision">;
9
+ //# sourceMappingURL=Player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/types/Player.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,qEAG7B,CAAA;AAEF,eAAO,MAAM,gBAAgB,mEAG3B,CAAA;AAEF,eAAO,MAAM,WAAW,gEAStB,CAAA;AAEF,eAAO,MAAM,WAAW,gEAgBtB,CAAA;AAEF,eAAO,MAAM,MAAM,2DAwCjB,CAAA;AAEF,eAAO,MAAM,YAAY,iEAsBvB,CAAA;AAEF,eAAO,MAAM,YAAY,iEAwBvB,CAAA;AAEF,eAAO,MAAM,cAAc,mEAoBzB,CAAA"}
@@ -0,0 +1,139 @@
1
+ import * as DB from '@prisma/client';
2
+ import { enumType, objectType } from 'nexus';
3
+ import { AchievementInstance } from './Achievement.js';
4
+ import { Game, Period, PeriodSegment } from './Game.js';
5
+ import { LearningElement } from './LearningElement.js';
6
+ import { StoryElement } from './StoryElement.js';
7
+
8
+ const PlayerDecisionType = enumType({
9
+ name: 'PlayerDecisionType',
10
+ members: Object.values(DB.PlayerDecisionType),
11
+ });
12
+ const PlayerResultType = enumType({
13
+ name: 'PlayerResultType',
14
+ members: Object.values(DB.PlayerResultType),
15
+ });
16
+ const PlayerLevel = objectType({
17
+ name: 'PlayerLevel',
18
+ definition(t) {
19
+ t.nonNull.id('id');
20
+ t.nonNull.int('index');
21
+ t.nonNull.string('description');
22
+ t.nonNull.int('requiredXP');
23
+ },
24
+ });
25
+ const PlayerState = objectType({
26
+ name: 'PlayerState',
27
+ definition(t) {
28
+ t.field('playerResult', {
29
+ type: PlayerResult,
30
+ });
31
+ t.field('currentGame', {
32
+ type: Game,
33
+ });
34
+ t.list.nonNull.field('previousResults', {
35
+ type: PlayerResult,
36
+ });
37
+ t.list.nonNull.field('transactions', {
38
+ type: PlayerAction,
39
+ });
40
+ },
41
+ });
42
+ const Player = objectType({
43
+ name: 'Player',
44
+ definition(t) {
45
+ t.nonNull.id('id');
46
+ t.nonNull.boolean('isReady');
47
+ t.nonNull.int('number');
48
+ t.nonNull.string('name');
49
+ t.nonNull.string('token');
50
+ t.nonNull.boolean('tutorialCompleted');
51
+ t.string('role');
52
+ t.nonNull.int('experience');
53
+ t.nonNull.int('experienceToNext');
54
+ t.nonNull.field('facts', {
55
+ type: 'JSONObject',
56
+ });
57
+ t.nonNull.field('level', {
58
+ type: PlayerLevel,
59
+ });
60
+ t.nonNull.int('levelIx');
61
+ t.nonNull.list.nonNull.string('achievementKeys');
62
+ t.nonNull.list.nonNull.string('achievementIds');
63
+ t.nonNull.list.nonNull.field('achievements', {
64
+ type: AchievementInstance,
65
+ });
66
+ t.nonNull.list.nonNull.field('completedLearningElements', {
67
+ type: LearningElement,
68
+ });
69
+ t.nonNull.list.nonNull.string('completedLearningElementIds');
70
+ t.nonNull.list.nonNull.field('visitedStoryElements', {
71
+ type: StoryElement,
72
+ });
73
+ t.nonNull.list.nonNull.string('visitedStoryElementIds');
74
+ },
75
+ });
76
+ const PlayerResult = objectType({
77
+ name: 'PlayerResult',
78
+ definition(t) {
79
+ t.nonNull.id('id');
80
+ t.field('type', {
81
+ type: PlayerResultType,
82
+ });
83
+ t.field('facts', {
84
+ type: 'JSONObject',
85
+ });
86
+ t.nonNull.field('player', {
87
+ type: Player,
88
+ });
89
+ t.nonNull.field('period', {
90
+ type: Period,
91
+ });
92
+ t.field('segment', {
93
+ type: PeriodSegment,
94
+ });
95
+ },
96
+ });
97
+ const PlayerAction = objectType({
98
+ name: 'PlayerAction',
99
+ definition(t) {
100
+ t.nonNull.id('id');
101
+ t.nonNull.string('type');
102
+ t.field('facts', {
103
+ type: 'JSONObject',
104
+ });
105
+ t.nonNull.field('player', {
106
+ type: Player,
107
+ });
108
+ t.nonNull.field('period', {
109
+ type: Period,
110
+ });
111
+ t.nonNull.int('periodIx');
112
+ t.field('segment', {
113
+ type: PeriodSegment,
114
+ });
115
+ t.int('segmentIx');
116
+ },
117
+ });
118
+ const PlayerDecision = objectType({
119
+ name: 'PlayerDecision',
120
+ definition(t) {
121
+ t.nonNull.id('id');
122
+ t.nonNull.field('player', {
123
+ type: Player,
124
+ });
125
+ t.nonNull.field('period', {
126
+ type: Period,
127
+ });
128
+ t.nonNull.int('periodIx');
129
+ t.nonNull.field('type', {
130
+ type: PlayerDecisionType,
131
+ });
132
+ t.nonNull.field('facts', {
133
+ type: 'JSONObject',
134
+ });
135
+ },
136
+ });
137
+
138
+ export { Player, PlayerAction, PlayerDecision, PlayerDecisionType, PlayerLevel, PlayerResult, PlayerResultType, PlayerState };
139
+ //# sourceMappingURL=Player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Player.js","sources":["../../src/types/Player.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function generateBaseQueries(): import("nexus/dist/core.js").NexusObjectTypeDef<"Query">;
2
+ export declare const Query: import("nexus/dist/core.js").NexusObjectTypeDef<"Query">;
3
+ //# sourceMappingURL=Query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/types/Query.ts"],"names":[],"mappings":"AAQA,wBAAgB,mBAAmB,6DAyFlC;AAED,eAAO,MAAM,KAAK,0DAAwB,CAAA"}