jp.ms.common.modules 1.0.1 → 1.0.2

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 (191) hide show
  1. package/dist/adapter/base-table-game-state-adapter.d.ts +34 -0
  2. package/dist/adapter/base-table-game-state-adapter.js +172 -0
  3. package/dist/adapter/base-table-game-state-adapter.js.map +1 -0
  4. package/dist/adapter/card-table-game-state-adapter.d.ts +12 -0
  5. package/dist/adapter/card-table-game-state-adapter.js +40 -0
  6. package/dist/adapter/card-table-game-state-adapter.js.map +1 -0
  7. package/dist/adapter/index.d.ts +1 -0
  8. package/dist/adapter/index.js +6 -0
  9. package/dist/adapter/index.js.map +1 -0
  10. package/dist/config/database.d.ts +1 -2
  11. package/dist/config/database.js +2 -3
  12. package/dist/config/database.js.map +1 -1
  13. package/dist/config/locale.d.ts +1 -1
  14. package/dist/config/locale.js +2 -3
  15. package/dist/config/locale.js.map +1 -1
  16. package/dist/dto/app-screen/app-screen-section-button.dto.d.ts +1 -0
  17. package/dist/dto/app-screen/app-screen-section-button.dto.js +11 -0
  18. package/dist/dto/app-screen/app-screen-section-button.dto.js.map +1 -1
  19. package/dist/dto/common/index.d.ts +1 -0
  20. package/dist/dto/common/index.js +6 -0
  21. package/dist/dto/common/index.js.map +1 -0
  22. package/dist/dto/common/player-check-state.dto.js.map +1 -0
  23. package/dist/dto/common/player-connected.dto.d.ts +9 -0
  24. package/dist/dto/common/player-connected.dto.js +78 -0
  25. package/dist/dto/common/player-connected.dto.js.map +1 -0
  26. package/dist/dto/index.d.ts +2 -1
  27. package/dist/dto/index.js +2 -1
  28. package/dist/dto/index.js.map +1 -1
  29. package/dist/dto/table-game/base/base-table-game-state.dto.d.ts +14 -0
  30. package/dist/dto/table-game/base/base-table-game-state.dto.js +109 -0
  31. package/dist/dto/table-game/base/base-table-game-state.dto.js.map +1 -0
  32. package/dist/dto/table-game/base/base-table-moves-panel.dto.d.ts +6 -0
  33. package/dist/dto/table-game/base/base-table-moves-panel.dto.js +39 -0
  34. package/dist/dto/table-game/base/base-table-moves-panel.dto.js.map +1 -0
  35. package/dist/dto/table-game/base/base-table-summary-item.dto.js.map +1 -0
  36. package/dist/dto/table-game/base/base-table-summary.dto.js.map +1 -0
  37. package/dist/dto/table-game/base/base-table-yours-action.dto.js.map +1 -0
  38. package/dist/dto/table-game/base/game-player.dto.d.ts +10 -0
  39. package/dist/dto/table-game/base/game-player.dto.js +96 -0
  40. package/dist/dto/table-game/base/game-player.dto.js.map +1 -0
  41. package/dist/dto/table-game/cards/card-pair-slot.dto.d.ts +9 -0
  42. package/dist/dto/table-game/cards/card-pair-slot.dto.js +67 -0
  43. package/dist/dto/table-game/cards/card-pair-slot.dto.js.map +1 -0
  44. package/dist/dto/table-game/cards/card-player.dto.d.ts +6 -0
  45. package/dist/dto/table-game/cards/card-player.dto.js +28 -0
  46. package/dist/dto/table-game/cards/card-player.dto.js.map +1 -0
  47. package/dist/dto/table-game/cards/card-table-game-state.dto.d.ts +16 -0
  48. package/dist/dto/table-game/cards/card-table-game-state.dto.js +68 -0
  49. package/dist/dto/table-game/cards/card-table-game-state.dto.js.map +1 -0
  50. package/dist/dto/table-game/cards/card.dto.d.ts +8 -0
  51. package/dist/dto/{base → table-game/cards}/card.dto.js +8 -0
  52. package/dist/dto/table-game/cards/card.dto.js.map +1 -0
  53. package/dist/dto/table-game/cards/cards-panel.dto.d.ts +9 -0
  54. package/dist/dto/table-game/cards/cards-panel.dto.js +59 -0
  55. package/dist/dto/table-game/cards/cards-panel.dto.js.map +1 -0
  56. package/dist/dto/table-game/index.d.ts +1 -0
  57. package/dist/dto/table-game/index.js +6 -0
  58. package/dist/dto/table-game/index.js.map +1 -0
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.js +1 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/modules/events/events.constants.d.ts +1 -0
  63. package/dist/modules/events/events.constants.js +5 -0
  64. package/dist/modules/events/events.constants.js.map +1 -0
  65. package/dist/modules/events/events.gateway.d.ts +6 -6
  66. package/dist/modules/events/events.gateway.js +42 -9
  67. package/dist/modules/events/events.gateway.js.map +1 -1
  68. package/dist/modules/events/events.interfaces.d.ts +13 -0
  69. package/dist/modules/events/events.interfaces.js +3 -0
  70. package/dist/modules/events/events.interfaces.js.map +1 -0
  71. package/dist/modules/events/events.module.d.ts +5 -0
  72. package/dist/modules/events/events.module.js +42 -0
  73. package/dist/modules/events/events.module.js.map +1 -0
  74. package/dist/modules/index.d.ts +6 -2
  75. package/dist/modules/index.js +11 -3
  76. package/dist/modules/index.js.map +1 -1
  77. package/dist/modules/players-manager/players-manager.module.js +1 -0
  78. package/dist/modules/players-manager/players-manager.module.js.map +1 -1
  79. package/dist/modules/rooms/rooms.constants.d.ts +1 -0
  80. package/dist/modules/rooms/rooms.constants.js +5 -0
  81. package/dist/modules/rooms/rooms.constants.js.map +1 -0
  82. package/dist/modules/rooms/rooms.controller.d.ts +15 -0
  83. package/dist/modules/rooms/rooms.controller.js +120 -0
  84. package/dist/modules/rooms/rooms.controller.js.map +1 -0
  85. package/dist/modules/rooms/rooms.interfaces.d.ts +15 -0
  86. package/dist/modules/rooms/rooms.interfaces.js +3 -0
  87. package/dist/modules/rooms/rooms.interfaces.js.map +1 -0
  88. package/dist/modules/rooms/rooms.module.d.ts +6 -0
  89. package/dist/modules/rooms/rooms.module.js +48 -0
  90. package/dist/modules/rooms/rooms.module.js.map +1 -0
  91. package/dist/modules/rooms/rooms.service.d.ts +19 -0
  92. package/dist/modules/rooms/rooms.service.js +112 -0
  93. package/dist/modules/rooms/rooms.service.js.map +1 -0
  94. package/dist/modules/simple-rooms-manager/simple-rooms-manager.constants.d.ts +1 -0
  95. package/dist/modules/simple-rooms-manager/simple-rooms-manager.constants.js +5 -0
  96. package/dist/modules/simple-rooms-manager/simple-rooms-manager.constants.js.map +1 -0
  97. package/dist/modules/simple-rooms-manager/simple-rooms-manager.interfaces.d.ts +17 -0
  98. package/dist/modules/simple-rooms-manager/simple-rooms-manager.interfaces.js +3 -0
  99. package/dist/modules/simple-rooms-manager/simple-rooms-manager.interfaces.js.map +1 -0
  100. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.d.ts +19 -0
  101. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +173 -0
  102. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -0
  103. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +9 -0
  104. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +39 -0
  105. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -0
  106. package/dist/modules/support/dump.service.d.ts +4 -0
  107. package/dist/modules/support/dump.service.js +27 -0
  108. package/dist/modules/support/dump.service.js.map +1 -0
  109. package/dist/modules/support/metric.service.d.ts +12 -0
  110. package/dist/modules/support/metric.service.js +53 -0
  111. package/dist/modules/support/metric.service.js.map +1 -0
  112. package/dist/modules/support/support.constants.d.ts +1 -0
  113. package/dist/modules/support/support.constants.js +5 -0
  114. package/dist/modules/support/support.constants.js.map +1 -0
  115. package/dist/modules/support/support.controller.d.ts +15 -0
  116. package/dist/modules/support/support.controller.js +81 -0
  117. package/dist/modules/support/support.controller.js.map +1 -0
  118. package/dist/modules/support/support.interfaces.d.ts +6 -0
  119. package/dist/modules/support/support.interfaces.js +3 -0
  120. package/dist/modules/support/support.interfaces.js.map +1 -0
  121. package/dist/modules/support/support.module.d.ts +5 -0
  122. package/dist/modules/support/support.module.js +32 -0
  123. package/dist/modules/support/support.module.js.map +1 -0
  124. package/dist/modules/support/support.service.d.ts +8 -0
  125. package/dist/modules/support/support.service.js +32 -0
  126. package/dist/modules/support/support.service.js.map +1 -0
  127. package/dist/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +11 -8
  129. package/src/adapter/base-table-game-state-adapter.ts +254 -0
  130. package/src/adapter/card-table-game-state-adapter.ts +54 -0
  131. package/src/adapter/index.ts +1 -0
  132. package/src/config/database.ts +2 -3
  133. package/src/config/locale.ts +2 -9
  134. package/src/dto/app-screen/app-screen-section-button.dto.ts +9 -0
  135. package/src/dto/common/index.ts +1 -0
  136. package/src/dto/common/player-connected.dto.ts +58 -0
  137. package/src/dto/index.ts +2 -1
  138. package/src/dto/table-game/base/base-table-game-state.dto.ts +79 -0
  139. package/src/dto/table-game/base/base-table-moves-panel.dto.ts +23 -0
  140. package/src/dto/table-game/base/game-player.dto.ts +69 -0
  141. package/src/dto/table-game/cards/card-pair-slot.dto.ts +45 -0
  142. package/src/dto/table-game/cards/card-player.dto.ts +15 -0
  143. package/src/dto/table-game/cards/card-table-game-state.dto.ts +50 -0
  144. package/src/dto/{base → table-game/cards}/card.dto.ts +10 -5
  145. package/src/dto/table-game/cards/cards-panel.dto.ts +40 -0
  146. package/src/dto/table-game/index.ts +2 -0
  147. package/src/index.ts +1 -0
  148. package/src/modules/events/events.constants.ts +1 -0
  149. package/src/modules/events/events.gateway.ts +58 -52
  150. package/src/modules/events/events.interfaces.ts +16 -0
  151. package/src/modules/events/events.module.ts +33 -0
  152. package/src/modules/index.ts +10 -2
  153. package/src/modules/players-manager/players-manager.module.ts +2 -1
  154. package/src/modules/rooms/rooms.constants.ts +1 -0
  155. package/src/modules/rooms/rooms.controller.ts +73 -0
  156. package/src/modules/rooms/rooms.interfaces.ts +17 -0
  157. package/src/modules/rooms/rooms.module.ts +36 -0
  158. package/src/modules/rooms/rooms.service.ts +150 -0
  159. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +1 -0
  160. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +19 -0
  161. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +171 -0
  162. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +29 -0
  163. package/src/modules/support/dump.service.ts +12 -0
  164. package/src/modules/support/metric.service.ts +41 -0
  165. package/src/modules/support/support.constants.ts +1 -0
  166. package/src/modules/support/support.controller.ts +47 -0
  167. package/src/modules/support/support.interfaces.ts +7 -0
  168. package/src/modules/support/support.module.ts +22 -0
  169. package/src/modules/support/support.service.ts +20 -0
  170. package/dist/dto/base/base-table-summary-item.dto.js.map +0 -1
  171. package/dist/dto/base/base-table-summary.dto.js.map +0 -1
  172. package/dist/dto/base/base-table-yours-action.dto.js.map +0 -1
  173. package/dist/dto/base/card.dto.d.ts +0 -7
  174. package/dist/dto/base/card.dto.js.map +0 -1
  175. package/dist/dto/base/index.d.ts +0 -5
  176. package/dist/dto/base/index.js +0 -14
  177. package/dist/dto/base/index.js.map +0 -1
  178. package/dist/dto/base/player-check-state.dto.js.map +0 -1
  179. package/src/dto/base/index.ts +0 -5
  180. /package/dist/dto/{base → common}/player-check-state.dto.d.ts +0 -0
  181. /package/dist/dto/{base → common}/player-check-state.dto.js +0 -0
  182. /package/dist/dto/{base → table-game/base}/base-table-summary-item.dto.d.ts +0 -0
  183. /package/dist/dto/{base → table-game/base}/base-table-summary-item.dto.js +0 -0
  184. /package/dist/dto/{base → table-game/base}/base-table-summary.dto.d.ts +0 -0
  185. /package/dist/dto/{base → table-game/base}/base-table-summary.dto.js +0 -0
  186. /package/dist/dto/{base → table-game/base}/base-table-yours-action.dto.d.ts +0 -0
  187. /package/dist/dto/{base → table-game/base}/base-table-yours-action.dto.js +0 -0
  188. /package/src/dto/{base → common}/player-check-state.dto.ts +0 -0
  189. /package/src/dto/{base → table-game/base}/base-table-summary-item.dto.ts +0 -0
  190. /package/src/dto/{base → table-game/base}/base-table-summary.dto.ts +0 -0
  191. /package/src/dto/{base → table-game/base}/base-table-yours-action.dto.ts +0 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RoomsService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const jp_common_models_1 = require("jp.common.models");
18
+ const jp_common_utils_1 = require("jp.common.utils");
19
+ const dto_1 = require("../../dto");
20
+ const simple_rooms_manager_service_1 = require("../simple-rooms-manager/simple-rooms-manager.service");
21
+ const players_manager_service_1 = require("../players-manager/players-manager.service");
22
+ const rooms_constants_1 = require("./rooms.constants");
23
+ let RoomsService = class RoomsService {
24
+ simpleRoomsManager;
25
+ playersManager;
26
+ options;
27
+ constructor(simpleRoomsManager, playersManager, options) {
28
+ this.simpleRoomsManager = simpleRoomsManager;
29
+ this.playersManager = playersManager;
30
+ this.options = options;
31
+ }
32
+ playerCheckState(clientAuthToken) {
33
+ const player = this.playersManager.getPlayerById(clientAuthToken);
34
+ if (player && player.isPlayer() && player.tableId) {
35
+ return dto_1.PlayerCheckStateDto.fromEntities(jp_common_models_1.router.getRoomPath(player.tableId), player.id);
36
+ }
37
+ return dto_1.PlayerCheckStateDto.fromEntities(jp_common_models_1.AppScreenRoutesEnum.MENU);
38
+ }
39
+ async getScreen(lang) {
40
+ const screen = jp_common_models_1.AppScreen.CreateStandardScreen(jp_common_models_1.AppScreenIdEnum.ROOMS)
41
+ .addAppBar(jp_common_models_1.AppScreenAppBar.CreateStandardAppBar(this.options.i18n.t('common.rooms.screen.title', { lang }), jp_common_models_1.AppScreenSectionButton.CreateArrowBackButton(this.options.i18n.t('common.button.back', { lang }))))
42
+ .addSection(jp_common_models_1.AppScreenSection.CreateCardListSection('id1', this.simpleRoomsManager.getRooms().reduce((result, room) => {
43
+ const list = room.getTables().map((table) => jp_common_models_1.AppScreenSectionListItem.CreateCardListItemMini(table.getId(), (0, jp_common_utils_1.replacePattern)(table.getTitle(lang), { NUMBER: table.getNumber().toString() }), (0, jp_common_utils_1.replacePattern)(table.getSubtitle(lang), {
44
+ HALF_BET: table.getHalfBet().toString(),
45
+ BET: table.getBet().toString()
46
+ }), jp_common_models_1.AppScreenSectionImage.CreateUrlImage(`${table.getPlayers().length}/${table.getTableSize()}`), true, jp_common_models_1.router.getRoomPath(table.getId())));
47
+ return [...result, ...list];
48
+ }, [])));
49
+ return new dto_1.BaseAppScreenDto(new jp_common_models_1.BaseAppScreen(screen));
50
+ }
51
+ watchTheTable(tableId, clientAuthToken) {
52
+ const player = this.playersManager.getPlayerById(clientAuthToken);
53
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
54
+ const master = room?.getMasterById(tableId);
55
+ if (player && room && master) {
56
+ room.handleWatchTheTable(player, tableId);
57
+ return master.createGameStateDto(player);
58
+ }
59
+ throw new common_1.InternalServerErrorException();
60
+ }
61
+ enterTheTable(tableId, clientAuthToken) {
62
+ const player = this.playersManager.getPlayerById(clientAuthToken);
63
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
64
+ const master = room?.getMasterById(tableId);
65
+ if (player && room && master) {
66
+ room.handleEnterTheTable(player, tableId);
67
+ return master.createGameStateDto(player);
68
+ }
69
+ throw new common_1.InternalServerErrorException();
70
+ }
71
+ exitTheTable(tableId, clientAuthToken) {
72
+ const player = this.playersManager.getPlayerById(clientAuthToken);
73
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
74
+ const master = room?.getMasterById(tableId);
75
+ if (player && room && master) {
76
+ room.handleExitTheTable(player, tableId);
77
+ return master.createGameStateDto(player);
78
+ }
79
+ throw new common_1.InternalServerErrorException();
80
+ }
81
+ moveOnTheTable(tableId, clientAuthToken, moveDto) {
82
+ const player = this.playersManager.getPlayerById(clientAuthToken);
83
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
84
+ const master = room?.getMasterById(tableId);
85
+ if (player && room && master) {
86
+ room.handleMoveOnTheTable(player, tableId, moveDto);
87
+ return master.createGameStateDto(player);
88
+ }
89
+ throw new common_1.InternalServerErrorException();
90
+ }
91
+ restartTable(tableId) {
92
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
93
+ const master = room?.getMasterById(tableId);
94
+ if (room && master) {
95
+ room.handleRestartTable(tableId);
96
+ return true;
97
+ }
98
+ throw new common_1.InternalServerErrorException();
99
+ }
100
+ techBreakOn() {
101
+ this.simpleRoomsManager.getRooms().forEach((item) => item.handleTechBreakOn());
102
+ return true;
103
+ }
104
+ };
105
+ exports.RoomsService = RoomsService;
106
+ exports.RoomsService = RoomsService = __decorate([
107
+ (0, common_1.Injectable)(),
108
+ __param(2, (0, common_1.Inject)(rooms_constants_1.ROOMS_OPTIONS)),
109
+ __metadata("design:paramtypes", [simple_rooms_manager_service_1.SimpleRoomsManagerService,
110
+ players_manager_service_1.PlayersManagerService, Object])
111
+ ], RoomsService);
112
+ //# sourceMappingURL=rooms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.service.js","sourceRoot":"","sources":["../../../src/modules/rooms/rooms.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkF;AAClF,uDAY0B;AAC1B,qDAAiD;AAEjD,mCAAkE;AAClE,uGAAiG;AACjG,wFAAmF;AAGnF,uDAAkD;AAG3C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEA;IACA;IACuB;IAH5C,YACqB,kBAA6C,EAC7C,cAAqC,EACd,OAA4B;QAFnD,uBAAkB,GAAlB,kBAAkB,CAA2B;QAC7C,mBAAc,GAAd,cAAc,CAAuB;QACd,YAAO,GAAP,OAAO,CAAqB;IAExE,CAAC;IAED,gBAAgB,CAAE,eAAuB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO,yBAAmB,CAAC,YAAY,CAAC,yBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,yBAAmB,CAAC,YAAY,CAAC,sCAAmB,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,SAAS,CAAE,IAAY;QACzB,MAAM,MAAM,GACR,4BAAS,CAAC,oBAAoB,CAAC,kCAAe,CAAC,KAAK,CAAC;aAChD,SAAS,CACN,kCAAe,CAAC,oBAAoB,CAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,EAC1D,yCAAsB,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACpG,CACJ;aACA,UAAU,CACP,mCAAgB,CAAC,qBAAqB,CAClC,KAAK,EACL,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAkC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACxF,MAAM,IAAI,GACN,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2CAAwB,CAAC,sBAAsB,CAC3E,KAAK,CAAC,KAAK,EAAE,EACb,IAAA,gCAAc,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAC9E,IAAA,gCAAc,EAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBACpC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;gBACvC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACjC,CAAC,EACF,wCAAqB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,EAC5F,IAAI,EACJ,yBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CACpC,CAAC,CAAC;YAEP,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC,EAAE,EAAE,CAAC,CACT,CACJ,CAAC;QAEV,OAAO,IAAI,sBAAgB,CAAC,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAE,OAAe,EAAE,eAAuB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE1C,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,qCAA4B,EAAE,CAAC;IAC7C,CAAC;IAED,aAAa,CAAE,OAAe,EAAE,eAAuB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE1C,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,qCAA4B,EAAE,CAAC;IAC7C,CAAC;IAED,YAAY,CAAE,OAAe,EAAE,eAAuB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEzC,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,qCAA4B,EAAE,CAAC;IAC7C,CAAC;IAED,cAAc,CAAE,OAAe,EAAE,eAAuB,EAAE,OAAsB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpD,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,qCAA4B,EAAE,CAAC;IAC7C,CAAC;IAED,YAAY,CAAE,OAAe;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,qCAA4B,EAAE,CAAC;IAC7C,CAAC;IAED,WAAW;QACP,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAE/E,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AA7HY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAKJ,WAAA,IAAA,eAAM,EAAC,+BAAa,CAAC,CAAA;qCAFe,wDAAyB;QAC7B,+CAAqB;GAHjD,YAAY,CA6HxB"}
@@ -0,0 +1 @@
1
+ export declare const SIMPLE_ROOMS_MANAGER_OPTIONS: unique symbol;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SIMPLE_ROOMS_MANAGER_OPTIONS = void 0;
4
+ exports.SIMPLE_ROOMS_MANAGER_OPTIONS = Symbol('SIMPLE_ROOMS_MANAGER_OPTIONS');
5
+ //# sourceMappingURL=simple-rooms-manager.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-rooms-manager.constants.js","sourceRoot":"","sources":["../../../src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { I18nService } from 'nestjs-i18n';
3
+ import { Type } from '@nestjs/common/interfaces/type.interface';
4
+ import { DynamicModule } from '@nestjs/common/interfaces/modules/dynamic-module.interface';
5
+ import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-reference.interface';
6
+ import { GameRoomConfig, SimpleRoom } from 'jp.ms.common.engine';
7
+ import { ConfigService } from '@nestjs/config';
8
+ export interface SimpleRoomsManagerOptions extends Pick<ModuleMetadata, 'imports'> {
9
+ imports?: Array<Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference>;
10
+ inject?: any[];
11
+ useFactory?: (...args: any[]) => Promise<any> | any;
12
+ }
13
+ export interface SimpleRoomsFactoryOptions {
14
+ i18n: I18nService;
15
+ configService: ConfigService;
16
+ createRoom(room: GameRoomConfig): SimpleRoom;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=simple-rooms-manager.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-rooms-manager.interfaces.js","sourceRoot":"","sources":["../../../src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { RoomsRepository, UsersRepository, GameResultRepository } from 'jp.db.schemas';
3
+ import { Connection } from 'mongoose';
4
+ import { SimpleRoomsManagerService } from './simple-rooms-manager.service';
5
+ import { SimpleRoomsFactoryOptions, SimpleRoomsManagerOptions } from './simple-rooms-manager.interfaces';
6
+ export declare class SimpleRoomsManagerModule {
7
+ private readonly roomsRepository;
8
+ private readonly usersRepository;
9
+ private readonly gameResultRepository;
10
+ private readonly simpleRoomsManagerService;
11
+ private readonly options;
12
+ private readonly connection;
13
+ private readonly logger;
14
+ constructor(roomsRepository: RoomsRepository, usersRepository: UsersRepository, gameResultRepository: GameResultRepository, simpleRoomsManagerService: SimpleRoomsManagerService, options: SimpleRoomsFactoryOptions, connection: Connection);
15
+ static forRootAsync(options: SimpleRoomsManagerOptions): DynamicModule;
16
+ onModuleInit(): Promise<void>;
17
+ private handleRoomEvent;
18
+ private handleRoomTableGameFinished;
19
+ }
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var SimpleRoomsManagerModule_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.SimpleRoomsManagerModule = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const mongoose_1 = require("@nestjs/mongoose");
19
+ const jp_db_schemas_1 = require("jp.db.schemas");
20
+ const jp_ms_common_engine_1 = require("jp.ms.common.engine");
21
+ const mongoose_2 = require("mongoose");
22
+ const simple_rooms_manager_service_1 = require("./simple-rooms-manager.service");
23
+ const simple_rooms_manager_constants_1 = require("./simple-rooms-manager.constants");
24
+ let SimpleRoomsManagerModule = SimpleRoomsManagerModule_1 = class SimpleRoomsManagerModule {
25
+ roomsRepository;
26
+ usersRepository;
27
+ gameResultRepository;
28
+ simpleRoomsManagerService;
29
+ options;
30
+ connection;
31
+ logger = new common_1.ConsoleLogger(SimpleRoomsManagerModule_1.name);
32
+ constructor(roomsRepository, usersRepository, gameResultRepository, simpleRoomsManagerService, options, connection) {
33
+ this.roomsRepository = roomsRepository;
34
+ this.usersRepository = usersRepository;
35
+ this.gameResultRepository = gameResultRepository;
36
+ this.simpleRoomsManagerService = simpleRoomsManagerService;
37
+ this.options = options;
38
+ this.connection = connection;
39
+ }
40
+ static forRootAsync(options) {
41
+ return {
42
+ module: SimpleRoomsManagerModule_1,
43
+ imports: options.imports ?? [],
44
+ providers: [
45
+ {
46
+ provide: simple_rooms_manager_constants_1.SIMPLE_ROOMS_MANAGER_OPTIONS,
47
+ useFactory: options.useFactory,
48
+ inject: options.inject || [],
49
+ },
50
+ ],
51
+ };
52
+ }
53
+ async onModuleInit() {
54
+ const restartGameTimeout = this.options.configService.get('RESTART_GAME_TIMEOUT') || 0;
55
+ const playersTurnTimeout = this.options.configService.get('PLAYERS_TURN_TIMEOUT') || 0;
56
+ const game = this.options.configService.get('GAME_TYPE') || '';
57
+ const templates = await this.roomsRepository.findRooms(game);
58
+ templates.forEach((item) => {
59
+ const newRoom = this.options.createRoom({
60
+ id: item.roomId,
61
+ gameType: item.gameType,
62
+ roomType: item.roomType,
63
+ rulesType: item.rulesType,
64
+ maxPlayers: item.maxPlayers,
65
+ bet: item.bet,
66
+ ticketPrice: item.limit / 2,
67
+ title: item.title,
68
+ subtitle: item.subtitle,
69
+ turnTimeout: playersTurnTimeout,
70
+ restartTimeout: restartGameTimeout,
71
+ localeService: this.options.i18n,
72
+ startStrategy: new jp_ms_common_engine_1.MinPlayersStartStrategy(),
73
+ onRoomEvent: this.handleRoomEvent,
74
+ onRoomTableGameFinished: this.handleRoomTableGameFinished,
75
+ deckType: item.deckType,
76
+ });
77
+ newRoom.addMaster();
78
+ this.simpleRoomsManagerService.addRoom(newRoom);
79
+ });
80
+ }
81
+ handleRoomEvent = (event) => {
82
+ if (event instanceof jp_ms_common_engine_1.GameRoomEvent) {
83
+ this.logger.log(event.constructor.name, event.roomId);
84
+ }
85
+ else {
86
+ this.logger.log(event.constructor.name);
87
+ }
88
+ };
89
+ handleRoomTableGameFinished = async (master) => {
90
+ const userGameResult = master.getTable().getPlayers().map((player) => {
91
+ return {
92
+ userId: player.id,
93
+ balanceAdding: player.profit,
94
+ experienceAdding: master.levelHelper.getNewExperienceAmount(player),
95
+ levelAdding: master.levelHelper.getNewLevelAdding(player.level, player.experience),
96
+ };
97
+ });
98
+ const gameResult = {
99
+ gameType: master.getRoom().getGameType(),
100
+ gameId: master.getGameRound()?.getId() ?? '',
101
+ roomId: master.getRoom().getId(),
102
+ date: new Date(),
103
+ pot: master.getGameRound()?.getPot() ?? 0,
104
+ extraData: { a: 1, b: false },
105
+ players: master.getTable().getPlayers().map((item) => ({
106
+ userId: item.id,
107
+ fullName: item.fullName,
108
+ profit: item.profit,
109
+ figures: [],
110
+ })),
111
+ winners: master.getGameResultHelper().getWinners().map((item) => ({
112
+ userId: item.id,
113
+ fullName: item.fullName,
114
+ profit: item.profit,
115
+ figures: [],
116
+ })),
117
+ history: master.getGameRound()?.getHistory().map((item) => ({
118
+ userId: item.userId,
119
+ fullName: item.fullName,
120
+ date: item.date,
121
+ actionType: item.actionType,
122
+ state: item.state,
123
+ turnNumber: item.turnNumber,
124
+ moveAction: item.move?.action,
125
+ moveData: item.move ?? undefined,
126
+ figures: item.figures?.map((item) => ({
127
+ figureId: item.id,
128
+ type: item.type,
129
+ name: item.getName(),
130
+ })) ?? [],
131
+ })) ?? []
132
+ };
133
+ const session = await this.connection.startSession();
134
+ session.startTransaction();
135
+ try {
136
+ await this.gameResultRepository.createGameResult(gameResult);
137
+ await this.usersRepository.saveGameResult(userGameResult);
138
+ await session.commitTransaction();
139
+ }
140
+ catch (error) {
141
+ await session.abortTransaction();
142
+ throw error;
143
+ }
144
+ finally {
145
+ await session.endSession();
146
+ }
147
+ };
148
+ };
149
+ exports.SimpleRoomsManagerModule = SimpleRoomsManagerModule;
150
+ exports.SimpleRoomsManagerModule = SimpleRoomsManagerModule = SimpleRoomsManagerModule_1 = __decorate([
151
+ (0, common_1.Global)(),
152
+ (0, common_1.Module)({
153
+ imports: [
154
+ mongoose_1.MongooseModule.forFeature([{ name: jp_db_schemas_1.Room.name, schema: jp_db_schemas_1.RoomSchema }]),
155
+ mongoose_1.MongooseModule.forFeature([{ name: jp_db_schemas_1.User.name, schema: jp_db_schemas_1.UserSchema }]),
156
+ mongoose_1.MongooseModule.forFeature([{ name: jp_db_schemas_1.GameResult.name, schema: jp_db_schemas_1.GameResultSchema }]),
157
+ ],
158
+ providers: [
159
+ jp_db_schemas_1.RoomsRepository,
160
+ jp_db_schemas_1.UsersRepository,
161
+ jp_db_schemas_1.GameResultRepository,
162
+ simple_rooms_manager_service_1.SimpleRoomsManagerService,
163
+ ],
164
+ exports: [simple_rooms_manager_service_1.SimpleRoomsManagerService],
165
+ }),
166
+ __param(4, (0, common_1.Inject)(simple_rooms_manager_constants_1.SIMPLE_ROOMS_MANAGER_OPTIONS)),
167
+ __param(5, (0, mongoose_1.InjectConnection)()),
168
+ __metadata("design:paramtypes", [jp_db_schemas_1.RoomsRepository,
169
+ jp_db_schemas_1.UsersRepository,
170
+ jp_db_schemas_1.GameResultRepository,
171
+ simple_rooms_manager_service_1.SimpleRoomsManagerService, Object, mongoose_2.Connection])
172
+ ], SimpleRoomsManagerModule);
173
+ //# sourceMappingURL=simple-rooms-manager.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-rooms-manager.module.js","sourceRoot":"","sources":["../../../src/modules/simple-rooms-manager/simple-rooms-manager.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { SimpleRoom } from 'jp.ms.common.engine';
2
+ export declare class SimpleRoomsManagerService {
3
+ private readonly rooms;
4
+ constructor();
5
+ getRoomById(roomId: string): SimpleRoom | undefined;
6
+ getRoomByTableId(tableId: string): SimpleRoom | undefined;
7
+ getRooms(): Array<SimpleRoom>;
8
+ addRoom(room: SimpleRoom): void;
9
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SimpleRoomsManagerService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const jp_ms_common_engine_1 = require("jp.ms.common.engine");
15
+ let SimpleRoomsManagerService = class SimpleRoomsManagerService {
16
+ rooms;
17
+ constructor() {
18
+ this.rooms = new Map();
19
+ }
20
+ getRoomById(roomId) {
21
+ return this.rooms.get(roomId);
22
+ }
23
+ getRoomByTableId(tableId) {
24
+ const { roomId } = jp_ms_common_engine_1.GameMaster.parseTableId(tableId);
25
+ return this.getRoomById(roomId);
26
+ }
27
+ getRooms() {
28
+ return Array.from(this.rooms.values());
29
+ }
30
+ addRoom(room) {
31
+ this.rooms.set(room.getId(), room);
32
+ }
33
+ };
34
+ exports.SimpleRoomsManagerService = SimpleRoomsManagerService;
35
+ exports.SimpleRoomsManagerService = SimpleRoomsManagerService = __decorate([
36
+ (0, common_1.Injectable)(),
37
+ __metadata("design:paramtypes", [])
38
+ ], SimpleRoomsManagerService);
39
+ //# sourceMappingURL=simple-rooms-manager.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-rooms-manager.service.js","sourceRoot":"","sources":["../../../src/modules/simple-rooms-manager/simple-rooms-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6DAA6D;AAGtD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACnB,KAAK,CAA0B;IAEhD;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,CAAC;IAED,WAAW,CAAE,MAAc;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAE,OAAe;QAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,gCAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAE,IAAgB;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAxBY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;;GACA,yBAAyB,CAwBrC"}
@@ -0,0 +1,4 @@
1
+ export declare class DumpService {
2
+ constructor();
3
+ getDump(): Promise<NodeJS.ReadableStream>;
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DumpService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const v8_1 = require("v8");
15
+ let DumpService = class DumpService {
16
+ constructor() {
17
+ }
18
+ async getDump() {
19
+ return v8_1.default.getHeapSnapshot();
20
+ }
21
+ };
22
+ exports.DumpService = DumpService;
23
+ exports.DumpService = DumpService = __decorate([
24
+ (0, common_1.Injectable)(),
25
+ __metadata("design:paramtypes", [])
26
+ ], DumpService);
27
+ //# sourceMappingURL=dump.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump.service.js","sourceRoot":"","sources":["../../../src/modules/support/dump.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2BAAoB;AAGb,IAAM,WAAW,GAAjB,MAAM,WAAW;IACpB;IACA,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,YAAE,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;CACJ,CAAA;AAPY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;;GACA,WAAW,CAOvB"}
@@ -0,0 +1,12 @@
1
+ import { Registry } from 'prom-client';
2
+ import { PlayersManagerService } from '../players-manager/players-manager.service';
3
+ import { SupportOptions } from './support.interfaces';
4
+ export declare class MetricService {
5
+ private options;
6
+ private readonly playersManager;
7
+ private readonly register;
8
+ private readonly activeUsersGauge;
9
+ private readonly playingTablesGauge;
10
+ constructor(options: SupportOptions, playersManager: PlayersManagerService);
11
+ getMetrics(): Promise<Registry>;
12
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MetricService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const client = require("prom-client");
18
+ const prom_client_1 = require("prom-client");
19
+ const players_manager_service_1 = require("../players-manager/players-manager.service");
20
+ const support_constants_1 = require("./support.constants");
21
+ let MetricService = class MetricService {
22
+ options;
23
+ playersManager;
24
+ register;
25
+ activeUsersGauge;
26
+ playingTablesGauge;
27
+ constructor(options, playersManager) {
28
+ this.options = options;
29
+ this.playersManager = playersManager;
30
+ this.register = new client.Registry();
31
+ prom_client_1.register.setDefaultLabels({ app: this.options.prometheusNameApp });
32
+ client.collectDefaultMetrics({ register: prom_client_1.register });
33
+ this.activeUsersGauge = new client.Gauge({
34
+ name: 'jptserveractiveusers',
35
+ help: 'Amount of active users',
36
+ });
37
+ this.playingTablesGauge = new client.Gauge({
38
+ name: 'jptserverplayingtables',
39
+ help: 'Amount of playing tables',
40
+ });
41
+ }
42
+ async getMetrics() {
43
+ this.activeUsersGauge.set(this.playersManager.getPlayers().length);
44
+ return prom_client_1.register;
45
+ }
46
+ };
47
+ exports.MetricService = MetricService;
48
+ exports.MetricService = MetricService = __decorate([
49
+ (0, common_1.Injectable)(),
50
+ __param(0, (0, common_1.Inject)(support_constants_1.SUPPORT_OPTIONS)),
51
+ __metadata("design:paramtypes", [Object, players_manager_service_1.PlayersManagerService])
52
+ ], MetricService);
53
+ //# sourceMappingURL=metric.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric.service.js","sourceRoot":"","sources":["../../../src/modules/support/metric.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,sCAAsC;AACtC,6CAAwD;AAExD,wFAAmF;AAEnF,2DAAsD;AAI/C,IAAM,aAAa,GAAnB,MAAM,aAAa;IAMe;IAChB;IANJ,QAAQ,CAAW;IACnB,gBAAgB,CAAQ;IACxB,kBAAkB,CAAQ;IAE3C,YACqC,OAAuB,EACvC,cAAqC;QADrB,YAAO,GAAP,OAAO,CAAgB;QACvC,mBAAc,GAAd,cAAc,CAAuB;QAEtD,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,sBAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAR,sBAAQ,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC;YACrC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,wBAAwB;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,0BAA0B;SACnC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAA;QAGlE,OAAO,sBAAQ,CAAC;IACpB,CAAC;CACJ,CAAA;AA9BY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;IAOJ,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;6CACS,+CAAqB;GAPjD,aAAa,CA8BzB"}
@@ -0,0 +1 @@
1
+ export declare const SUPPORT_OPTIONS: unique symbol;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORT_OPTIONS = void 0;
4
+ exports.SUPPORT_OPTIONS = Symbol('SUPPORT_OPTIONS');
5
+ //# sourceMappingURL=support.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.constants.js","sourceRoot":"","sources":["../../../src/modules/support/support.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Response } from 'express';
2
+ import { PlayerConnectedDto } from '../../dto/common/player-connected.dto';
3
+ import { SupportService } from './support.service';
4
+ import { MetricService } from './metric.service';
5
+ import { DumpService } from './dump.service';
6
+ export declare class SupportController {
7
+ private readonly supportService;
8
+ private readonly metricService;
9
+ private readonly dumpService;
10
+ constructor(supportService: SupportService, metricService: MetricService, dumpService: DumpService);
11
+ getUsers(): Promise<Array<PlayerConnectedDto>>;
12
+ getDump(response: Response): Promise<void>;
13
+ getMetrics(response: Response): Promise<void>;
14
+ addLog(): void;
15
+ }