@omnitronix/bonnys-fortune-game-engine 1.0.0-beta.1

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 (118) hide show
  1. package/README.md +680 -0
  2. package/dist/__tests__/bonnys-fortune-v1.game-engine.test.js +71 -0
  3. package/dist/__tests__/bonnys-fortune-v1.game-engine.test.js.map +1 -0
  4. package/dist/__tests__/comprehensive.test.js +741 -0
  5. package/dist/__tests__/comprehensive.test.js.map +1 -0
  6. package/dist/bonnys-fortune-v1.game-engine.js +184 -0
  7. package/dist/bonnys-fortune-v1.game-engine.js.map +1 -0
  8. package/dist/config/game-logic-config/file-system.game-logic-config-loader.js +57 -0
  9. package/dist/config/game-logic-config/file-system.game-logic-config-loader.js.map +1 -0
  10. package/dist/config/game-logic-config/game-logic-config-loader.js +3 -0
  11. package/dist/config/game-logic-config/game-logic-config-loader.js.map +1 -0
  12. package/dist/config/game-logic-config/game-logic-config.js +382 -0
  13. package/dist/config/game-logic-config/game-logic-config.js.map +1 -0
  14. package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.js +34 -0
  15. package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.js.map +1 -0
  16. package/dist/config/reel-strips-config/reel-strip-option.dto.js +27 -0
  17. package/dist/config/reel-strips-config/reel-strip-option.dto.js.map +1 -0
  18. package/dist/config/reel-strips-config/reel-strips-config-loader.js +3 -0
  19. package/dist/config/reel-strips-config/reel-strips-config-loader.js.map +1 -0
  20. package/dist/config/reel-strips-config/reel-strips-config.dto.js +29 -0
  21. package/dist/config/reel-strips-config/reel-strips-config.dto.js.map +1 -0
  22. package/dist/config/reel-strips-config/reel.dto.js +29 -0
  23. package/dist/config/reel-strips-config/reel.dto.js.map +1 -0
  24. package/dist/config/reel-strips-config/reels-BASE.csv +52 -0
  25. package/dist/config/reel-strips-config/reels-BONUS.csv +52 -0
  26. package/dist/domain/game-round.types.js +9 -0
  27. package/dist/domain/game-round.types.js.map +1 -0
  28. package/dist/domain/mappers/reel-strips-config.mapper.js +17 -0
  29. package/dist/domain/mappers/reel-strips-config.mapper.js.map +1 -0
  30. package/dist/domain/reel-strip-option.js +19 -0
  31. package/dist/domain/reel-strip-option.js.map +1 -0
  32. package/dist/domain/reel-strips-config.js +22 -0
  33. package/dist/domain/reel-strips-config.js.map +1 -0
  34. package/dist/domain/reel.js +19 -0
  35. package/dist/domain/reel.js.map +1 -0
  36. package/dist/domain/types/debug-trigger-bonus-command.js +3 -0
  37. package/dist/domain/types/debug-trigger-bonus-command.js.map +1 -0
  38. package/dist/domain/types/debug-trigger-bonus-request.dto.js +3 -0
  39. package/dist/domain/types/debug-trigger-bonus-request.dto.js.map +1 -0
  40. package/dist/domain/types/debug-update-bonus-meter-progress-command.js +3 -0
  41. package/dist/domain/types/debug-update-bonus-meter-progress-command.js.map +1 -0
  42. package/dist/domain/types/debug-update-bonus-meter-progress-request.dto.js +3 -0
  43. package/dist/domain/types/debug-update-bonus-meter-progress-request.dto.js.map +1 -0
  44. package/dist/domain/types/game-spin-command.js +3 -0
  45. package/dist/domain/types/game-spin-command.js.map +1 -0
  46. package/dist/domain/types/game-spin-input.dto.js +3 -0
  47. package/dist/domain/types/game-spin-input.dto.js.map +1 -0
  48. package/dist/domain/types/game-spin-output.dto.js +17 -0
  49. package/dist/domain/types/game-spin-output.dto.js.map +1 -0
  50. package/dist/domain/types/game-symbols.response.dto.js +7 -0
  51. package/dist/domain/types/game-symbols.response.dto.js.map +1 -0
  52. package/dist/domain/types/reel-strip-option.dto.js +27 -0
  53. package/dist/domain/types/reel-strip-option.dto.js.map +1 -0
  54. package/dist/domain/types/reel-strips-config.dto.js +28 -0
  55. package/dist/domain/types/reel-strips-config.dto.js.map +1 -0
  56. package/dist/domain/types/reel.dto.js +28 -0
  57. package/dist/domain/types/reel.dto.js.map +1 -0
  58. package/dist/domain/types/start-bonus-round-command.js +3 -0
  59. package/dist/domain/types/start-bonus-round-command.js.map +1 -0
  60. package/dist/domain/types/start-bonus-round-input.dto.js +3 -0
  61. package/dist/domain/types/start-bonus-round-input.dto.js.map +1 -0
  62. package/dist/game-engine.interface.js +3 -0
  63. package/dist/game-engine.interface.js.map +1 -0
  64. package/dist/helpers/generate-hash.js +9 -0
  65. package/dist/helpers/generate-hash.js.map +1 -0
  66. package/dist/helpers/number-helper.js +43 -0
  67. package/dist/helpers/number-helper.js.map +1 -0
  68. package/dist/helpers/optional-boolean-mapper.js +9 -0
  69. package/dist/helpers/optional-boolean-mapper.js.map +1 -0
  70. package/dist/helpers/uuid-helper.js +11 -0
  71. package/dist/helpers/uuid-helper.js.map +1 -0
  72. package/dist/helpers/validation-helper.js +25 -0
  73. package/dist/helpers/validation-helper.js.map +1 -0
  74. package/dist/index.js +7 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/logger/logger.js +140 -0
  77. package/dist/logger/logger.js.map +1 -0
  78. package/dist/logic/bonnys-fortune.game-logic.js +252 -0
  79. package/dist/logic/bonnys-fortune.game-logic.js.map +1 -0
  80. package/dist/logic/bonnys-fortune.spin-generator.js +101 -0
  81. package/dist/logic/bonnys-fortune.spin-generator.js.map +1 -0
  82. package/dist/logic/bonnys-fortune.types.js +17 -0
  83. package/dist/logic/bonnys-fortune.types.js.map +1 -0
  84. package/dist/logic/bonnys-fortune.win-calculator.js +130 -0
  85. package/dist/logic/bonnys-fortune.win-calculator.js.map +1 -0
  86. package/dist/logic/game-logic-config.interface.js +3 -0
  87. package/dist/logic/game-logic-config.interface.js.map +1 -0
  88. package/dist/logic/handlers/base-game.handler.js +113 -0
  89. package/dist/logic/handlers/base-game.handler.js.map +1 -0
  90. package/dist/logic/handlers/collect-feature-bonus.handler.js +152 -0
  91. package/dist/logic/handlers/collect-feature-bonus.handler.js.map +1 -0
  92. package/dist/logic/handlers/free-spins-bonus.handler.js +69 -0
  93. package/dist/logic/handlers/free-spins-bonus.handler.js.map +1 -0
  94. package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js +75 -0
  95. package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js.map +1 -0
  96. package/dist/logic/handlers/treasure-hunt-bonus.handler.js +131 -0
  97. package/dist/logic/handlers/treasure-hunt-bonus.handler.js.map +1 -0
  98. package/dist/rng/DummyRngClient.js +86 -0
  99. package/dist/rng/DummyRngClient.js.map +1 -0
  100. package/dist/rng/rng-client.factory.js +23 -0
  101. package/dist/rng/rng-client.factory.js.map +1 -0
  102. package/dist/rng/rng-client.interface.js +3 -0
  103. package/dist/rng/rng-client.interface.js.map +1 -0
  104. package/dist/rng/rng-service.js +78 -0
  105. package/dist/rng/rng-service.js.map +1 -0
  106. package/dist/validation/abstract-game-logic-config.validator.js +18 -0
  107. package/dist/validation/abstract-game-logic-config.validator.js.map +1 -0
  108. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js +454 -0
  109. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js.map +1 -0
  110. package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.js +12 -0
  111. package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.js.map +1 -0
  112. package/dist/validation/custom-decorators/IsNestedIntArray.js +26 -0
  113. package/dist/validation/custom-decorators/IsNestedIntArray.js.map +1 -0
  114. package/dist/validation/game-logic-config-validation.service.js +20 -0
  115. package/dist/validation/game-logic-config-validation.service.js.map +1 -0
  116. package/dist/validation/reel-strips-config-validation.service.js +26 -0
  117. package/dist/validation/reel-strips-config-validation.service.js.map +1 -0
  118. package/package.json +51 -0
@@ -0,0 +1,454 @@
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.BonnysFortuneGameLogicConfigDto = exports.ScatterGameConfigWrapperDto = exports.ScatterGameConfigDto = exports.ScatterCheckpointDto = exports.ScatterSymbolDto = exports.BonusGamesDto = exports.SteeringToTheFortuneBonusGameDto = exports.SteeringToTheFortuneBonusConfigDto = exports.SteeringToTheFortuneWheelResultDto = exports.FreeSpinBonusGameDto = exports.FreeSpinBonusConfigDto = exports.FreeSpinTypeDto = exports.TreasureHuntBonusGameDto = exports.BaseBonusGameDto = exports.BonusGameEvaluationConfigDto = exports.TreasureHuntBonusConfigDto = exports.BaseGameDto = exports.BonusGameMeterDto = exports.BaseGameConfigDto = exports.ReelsOptionsDto = exports.WinConfigDto = exports.LayoutDto = exports.SymbolDefinitionsDto = exports.SymbolRangeDto = exports.CollectFeatureSymbolsDto = exports.SymbolMultipliersDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ // --- SymbolMultiplier ---
16
+ class SymbolMultipliersDto {
17
+ }
18
+ exports.SymbolMultipliersDto = SymbolMultipliersDto;
19
+ __decorate([
20
+ (0, class_validator_1.IsInt)(),
21
+ __metadata("design:type", Number)
22
+ ], SymbolMultipliersDto.prototype, "symbolId", void 0);
23
+ __decorate([
24
+ (0, class_validator_1.IsString)(),
25
+ __metadata("design:type", String)
26
+ ], SymbolMultipliersDto.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsObject)(),
29
+ __metadata("design:type", Object)
30
+ ], SymbolMultipliersDto.prototype, "multipliers", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsBoolean)(),
33
+ __metadata("design:type", Boolean)
34
+ ], SymbolMultipliersDto.prototype, "isWild", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsBoolean)(),
37
+ __metadata("design:type", Boolean)
38
+ ], SymbolMultipliersDto.prototype, "isScatter", void 0);
39
+ // --- SymbolDefinitions ---
40
+ class CollectFeatureSymbolsDto {
41
+ }
42
+ exports.CollectFeatureSymbolsDto = CollectFeatureSymbolsDto;
43
+ __decorate([
44
+ (0, class_validator_1.IsObject)(),
45
+ __metadata("design:type", Object)
46
+ ], CollectFeatureSymbolsDto.prototype, "multipliers", void 0);
47
+ __decorate([
48
+ (0, class_validator_1.IsObject)(),
49
+ __metadata("design:type", Object)
50
+ ], CollectFeatureSymbolsDto.prototype, "values", void 0);
51
+ class SymbolRangeDto {
52
+ }
53
+ exports.SymbolRangeDto = SymbolRangeDto;
54
+ __decorate([
55
+ (0, class_validator_1.IsInt)(),
56
+ __metadata("design:type", Number)
57
+ ], SymbolRangeDto.prototype, "minIndex", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsInt)(),
60
+ __metadata("design:type", Number)
61
+ ], SymbolRangeDto.prototype, "maxIndex", void 0);
62
+ class SymbolDefinitionsDto {
63
+ }
64
+ exports.SymbolDefinitionsDto = SymbolDefinitionsDto;
65
+ __decorate([
66
+ (0, class_validator_1.ValidateNested)(),
67
+ (0, class_transformer_1.Type)(() => SymbolRangeDto),
68
+ __metadata("design:type", SymbolRangeDto)
69
+ ], SymbolDefinitionsDto.prototype, "baseSymbols", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsObject)(),
72
+ __metadata("design:type", Object)
73
+ ], SymbolDefinitionsDto.prototype, "specialSymbols", void 0);
74
+ __decorate([
75
+ (0, class_validator_1.ValidateNested)(),
76
+ (0, class_transformer_1.Type)(() => CollectFeatureSymbolsDto),
77
+ __metadata("design:type", CollectFeatureSymbolsDto)
78
+ ], SymbolDefinitionsDto.prototype, "collectFeatureSymbols", void 0);
79
+ // --- BaseGameConfig ---
80
+ class LayoutDto {
81
+ }
82
+ exports.LayoutDto = LayoutDto;
83
+ __decorate([
84
+ (0, class_validator_1.IsInt)(),
85
+ __metadata("design:type", Number)
86
+ ], LayoutDto.prototype, "rows", void 0);
87
+ __decorate([
88
+ (0, class_validator_1.IsInt)(),
89
+ __metadata("design:type", Number)
90
+ ], LayoutDto.prototype, "reels", void 0);
91
+ class WinConfigDto {
92
+ }
93
+ exports.WinConfigDto = WinConfigDto;
94
+ __decorate([
95
+ (0, class_validator_1.IsInt)(),
96
+ __metadata("design:type", Number)
97
+ ], WinConfigDto.prototype, "minLength", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsInt)(),
100
+ __metadata("design:type", Number)
101
+ ], WinConfigDto.prototype, "maxLength", void 0);
102
+ // --- ReelsOptions ---
103
+ class ReelsOptionsDto {
104
+ }
105
+ exports.ReelsOptionsDto = ReelsOptionsDto;
106
+ __decorate([
107
+ (0, class_validator_1.IsInt)(),
108
+ __metadata("design:type", Number)
109
+ ], ReelsOptionsDto.prototype, "numberOfOptions", void 0);
110
+ __decorate([
111
+ (0, class_validator_1.IsArray)(),
112
+ (0, class_validator_1.IsInt)({ each: true }),
113
+ __metadata("design:type", Array)
114
+ ], ReelsOptionsDto.prototype, "optionWeights", void 0);
115
+ class BaseGameConfigDto {
116
+ }
117
+ exports.BaseGameConfigDto = BaseGameConfigDto;
118
+ __decorate([
119
+ (0, class_validator_1.ValidateNested)(),
120
+ (0, class_transformer_1.Type)(() => LayoutDto),
121
+ __metadata("design:type", LayoutDto)
122
+ ], BaseGameConfigDto.prototype, "layout", void 0);
123
+ __decorate([
124
+ (0, class_validator_1.ValidateNested)(),
125
+ (0, class_transformer_1.Type)(() => WinConfigDto),
126
+ __metadata("design:type", WinConfigDto)
127
+ ], BaseGameConfigDto.prototype, "winConfig", void 0);
128
+ __decorate([
129
+ (0, class_validator_1.IsInt)(),
130
+ __metadata("design:type", Number)
131
+ ], BaseGameConfigDto.prototype, "baseBet", void 0);
132
+ __decorate([
133
+ (0, class_validator_1.ValidateNested)(),
134
+ (0, class_transformer_1.Type)(() => ReelsOptionsDto),
135
+ __metadata("design:type", ReelsOptionsDto)
136
+ ], BaseGameConfigDto.prototype, "reelsOptions", void 0);
137
+ // --- BonusGameMeter ---
138
+ class BonusGameMeterDto {
139
+ }
140
+ exports.BonusGameMeterDto = BonusGameMeterDto;
141
+ __decorate([
142
+ (0, class_validator_1.IsString)(),
143
+ __metadata("design:type", String)
144
+ ], BonusGameMeterDto.prototype, "symbol", void 0);
145
+ __decorate([
146
+ (0, class_validator_1.IsInt)(),
147
+ __metadata("design:type", Number)
148
+ ], BonusGameMeterDto.prototype, "min", void 0);
149
+ __decorate([
150
+ (0, class_validator_1.IsInt)(),
151
+ __metadata("design:type", Number)
152
+ ], BonusGameMeterDto.prototype, "max", void 0);
153
+ // --- BaseGame ---
154
+ class BaseGameDto {
155
+ }
156
+ exports.BaseGameDto = BaseGameDto;
157
+ __decorate([
158
+ (0, class_validator_1.IsArray)(),
159
+ (0, class_validator_1.ValidateNested)({ each: true }),
160
+ (0, class_transformer_1.Type)(() => SymbolMultipliersDto),
161
+ __metadata("design:type", Array)
162
+ ], BaseGameDto.prototype, "symbolMultipliers", void 0);
163
+ __decorate([
164
+ (0, class_validator_1.ValidateNested)(),
165
+ (0, class_transformer_1.Type)(() => SymbolDefinitionsDto),
166
+ __metadata("design:type", SymbolDefinitionsDto)
167
+ ], BaseGameDto.prototype, "symbolDefinitions", void 0);
168
+ __decorate([
169
+ (0, class_validator_1.ValidateNested)(),
170
+ (0, class_transformer_1.Type)(() => BaseGameConfigDto),
171
+ __metadata("design:type", BaseGameConfigDto)
172
+ ], BaseGameDto.prototype, "baseGameConfig", void 0);
173
+ __decorate([
174
+ (0, class_validator_1.IsObject)(),
175
+ __metadata("design:type", Object)
176
+ ], BaseGameDto.prototype, "paidHSymbolWeights", void 0);
177
+ __decorate([
178
+ (0, class_validator_1.IsObject)(),
179
+ __metadata("design:type", Object)
180
+ ], BaseGameDto.prototype, "paidHSymbolReelWeights", void 0);
181
+ __decorate([
182
+ (0, class_validator_1.IsObject)(),
183
+ __metadata("design:type", Object)
184
+ ], BaseGameDto.prototype, "paidScatterReelWeights", void 0);
185
+ __decorate([
186
+ (0, class_validator_1.IsObject)(),
187
+ __metadata("design:type", Object)
188
+ ], BaseGameDto.prototype, "bonusGameMeters", void 0);
189
+ // --- BonusGame Specific Config DTOs ---
190
+ class TreasureHuntBonusConfigDto {
191
+ }
192
+ exports.TreasureHuntBonusConfigDto = TreasureHuntBonusConfigDto;
193
+ __decorate([
194
+ (0, class_validator_1.IsInt)(),
195
+ __metadata("design:type", Number)
196
+ ], TreasureHuntBonusConfigDto.prototype, "symbolsCount", void 0);
197
+ __decorate([
198
+ (0, class_validator_1.IsInt)(),
199
+ __metadata("design:type", Number)
200
+ ], TreasureHuntBonusConfigDto.prototype, "stepsCount", void 0);
201
+ __decorate([
202
+ (0, class_validator_1.IsObject)(),
203
+ __metadata("design:type", Object)
204
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotMultipliers", void 0);
205
+ __decorate([
206
+ (0, class_validator_1.IsObject)(),
207
+ __metadata("design:type", Object)
208
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotStartCounts", void 0);
209
+ __decorate([
210
+ (0, class_validator_1.IsObject)(),
211
+ __metadata("design:type", Object)
212
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotScreenCounts", void 0);
213
+ __decorate([
214
+ (0, class_validator_1.IsObject)(),
215
+ __metadata("design:type", Object)
216
+ ], TreasureHuntBonusConfigDto.prototype, "winningWeights", void 0);
217
+ // --- BonusGameEvaluationConfigDto ---
218
+ class BonusGameEvaluationConfigDto {
219
+ }
220
+ exports.BonusGameEvaluationConfigDto = BonusGameEvaluationConfigDto;
221
+ __decorate([
222
+ (0, class_validator_1.IsString)(),
223
+ __metadata("design:type", String)
224
+ ], BonusGameEvaluationConfigDto.prototype, "defaultConfig", void 0);
225
+ __decorate([
226
+ (0, class_validator_1.IsArray)(),
227
+ (0, class_validator_1.IsString)({ each: true }),
228
+ (0, class_validator_1.IsOptional)(),
229
+ __metadata("design:type", Array)
230
+ ], BonusGameEvaluationConfigDto.prototype, "alternativeConfigs", void 0);
231
+ __decorate([
232
+ (0, class_validator_1.IsOptional)(),
233
+ (0, class_validator_1.IsObject)(),
234
+ __metadata("design:type", Object)
235
+ ], BonusGameEvaluationConfigDto.prototype, "selectionWeights", void 0);
236
+ // --- BonusGameDto (discriminated union with validation) ---
237
+ class BaseBonusGameDto {
238
+ }
239
+ exports.BaseBonusGameDto = BaseBonusGameDto;
240
+ __decorate([
241
+ (0, class_validator_1.IsString)(),
242
+ __metadata("design:type", String)
243
+ ], BaseBonusGameDto.prototype, "type", void 0);
244
+ __decorate([
245
+ (0, class_validator_1.IsString)(),
246
+ __metadata("design:type", String)
247
+ ], BaseBonusGameDto.prototype, "potMeter", void 0);
248
+ __decorate([
249
+ (0, class_validator_1.ValidateNested)(),
250
+ (0, class_transformer_1.Type)(() => BonusGameEvaluationConfigDto),
251
+ __metadata("design:type", BonusGameEvaluationConfigDto)
252
+ ], BaseBonusGameDto.prototype, "evaluationConfig", void 0);
253
+ class TreasureHuntBonusGameDto extends BaseBonusGameDto {
254
+ }
255
+ exports.TreasureHuntBonusGameDto = TreasureHuntBonusGameDto;
256
+ __decorate([
257
+ (0, class_validator_1.ValidateNested)(),
258
+ (0, class_transformer_1.Type)(() => TreasureHuntBonusConfigDto),
259
+ __metadata("design:type", TreasureHuntBonusConfigDto)
260
+ ], TreasureHuntBonusGameDto.prototype, "config", void 0);
261
+ class FreeSpinTypeDto {
262
+ }
263
+ exports.FreeSpinTypeDto = FreeSpinTypeDto;
264
+ __decorate([
265
+ (0, class_validator_1.ValidateNested)(),
266
+ (0, class_transformer_1.Type)(() => LayoutDto),
267
+ __metadata("design:type", LayoutDto)
268
+ ], FreeSpinTypeDto.prototype, "layout", void 0);
269
+ __decorate([
270
+ (0, class_validator_1.IsInt)(),
271
+ __metadata("design:type", Number)
272
+ ], FreeSpinTypeDto.prototype, "spins", void 0);
273
+ __decorate([
274
+ (0, class_validator_1.IsInt)(),
275
+ __metadata("design:type", Number)
276
+ ], FreeSpinTypeDto.prototype, "multiplier", void 0);
277
+ __decorate([
278
+ (0, class_validator_1.IsInt)(),
279
+ __metadata("design:type", Number)
280
+ ], FreeSpinTypeDto.prototype, "weight", void 0);
281
+ __decorate([
282
+ (0, class_validator_1.IsArray)(),
283
+ (0, class_validator_1.IsInt)({ each: true }),
284
+ __metadata("design:type", Array)
285
+ ], FreeSpinTypeDto.prototype, "reelsOptionsWeights", void 0);
286
+ class FreeSpinBonusConfigDto {
287
+ }
288
+ exports.FreeSpinBonusConfigDto = FreeSpinBonusConfigDto;
289
+ __decorate([
290
+ (0, class_validator_1.IsArray)(),
291
+ (0, class_validator_1.ValidateNested)({ each: true }),
292
+ (0, class_transformer_1.Type)(() => FreeSpinTypeDto),
293
+ __metadata("design:type", Array)
294
+ ], FreeSpinBonusConfigDto.prototype, "spinTypes", void 0);
295
+ class FreeSpinBonusGameDto extends BaseBonusGameDto {
296
+ }
297
+ exports.FreeSpinBonusGameDto = FreeSpinBonusGameDto;
298
+ __decorate([
299
+ (0, class_validator_1.ValidateNested)(),
300
+ (0, class_transformer_1.Type)(() => FreeSpinBonusConfigDto),
301
+ __metadata("design:type", FreeSpinBonusConfigDto)
302
+ ], FreeSpinBonusGameDto.prototype, "config", void 0);
303
+ class SteeringToTheFortuneWheelResultDto {
304
+ }
305
+ exports.SteeringToTheFortuneWheelResultDto = SteeringToTheFortuneWheelResultDto;
306
+ __decorate([
307
+ (0, class_validator_1.IsString)(),
308
+ __metadata("design:type", String)
309
+ ], SteeringToTheFortuneWheelResultDto.prototype, "type", void 0);
310
+ __decorate([
311
+ (0, class_validator_1.IsOptional)(),
312
+ (0, class_validator_1.IsInt)(),
313
+ __metadata("design:type", Number)
314
+ ], SteeringToTheFortuneWheelResultDto.prototype, "value", void 0);
315
+ __decorate([
316
+ (0, class_validator_1.IsOptional)(),
317
+ (0, class_validator_1.IsString)(),
318
+ __metadata("design:type", String)
319
+ ], SteeringToTheFortuneWheelResultDto.prototype, "bonusType", void 0);
320
+ __decorate([
321
+ (0, class_validator_1.IsInt)(),
322
+ __metadata("design:type", Number)
323
+ ], SteeringToTheFortuneWheelResultDto.prototype, "weight", void 0);
324
+ class SteeringToTheFortuneBonusConfigDto {
325
+ }
326
+ exports.SteeringToTheFortuneBonusConfigDto = SteeringToTheFortuneBonusConfigDto;
327
+ __decorate([
328
+ (0, class_validator_1.IsArray)(),
329
+ (0, class_validator_1.ValidateNested)({ each: true }),
330
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneWheelResultDto),
331
+ __metadata("design:type", Array)
332
+ ], SteeringToTheFortuneBonusConfigDto.prototype, "wheelResults", void 0);
333
+ class SteeringToTheFortuneBonusGameDto extends BaseBonusGameDto {
334
+ }
335
+ exports.SteeringToTheFortuneBonusGameDto = SteeringToTheFortuneBonusGameDto;
336
+ __decorate([
337
+ (0, class_validator_1.ValidateNested)(),
338
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneBonusConfigDto),
339
+ __metadata("design:type", SteeringToTheFortuneBonusConfigDto)
340
+ ], SteeringToTheFortuneBonusGameDto.prototype, "config", void 0);
341
+ class BonusGamesDto {
342
+ }
343
+ exports.BonusGamesDto = BonusGamesDto;
344
+ __decorate([
345
+ (0, class_validator_1.ValidateNested)(),
346
+ (0, class_transformer_1.Type)(() => TreasureHuntBonusGameDto),
347
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame1'] !== undefined),
348
+ __metadata("design:type", TreasureHuntBonusGameDto)
349
+ ], BonusGamesDto.prototype, "bonusGame1", void 0);
350
+ __decorate([
351
+ (0, class_validator_1.ValidateNested)(),
352
+ (0, class_transformer_1.Type)(() => FreeSpinBonusGameDto),
353
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame2'] !== undefined),
354
+ __metadata("design:type", FreeSpinBonusGameDto)
355
+ ], BonusGamesDto.prototype, "bonusGame2", void 0);
356
+ __decorate([
357
+ (0, class_validator_1.ValidateNested)(),
358
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneBonusGameDto),
359
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame3'] !== undefined),
360
+ __metadata("design:type", SteeringToTheFortuneBonusGameDto)
361
+ ], BonusGamesDto.prototype, "bonusGame3", void 0);
362
+ // --- ScatterSymbolDto ---
363
+ class ScatterSymbolDto {
364
+ }
365
+ exports.ScatterSymbolDto = ScatterSymbolDto;
366
+ __decorate([
367
+ (0, class_validator_1.IsString)(),
368
+ __metadata("design:type", String)
369
+ ], ScatterSymbolDto.prototype, "symbolId", void 0);
370
+ __decorate([
371
+ (0, class_validator_1.IsInt)(),
372
+ __metadata("design:type", Number)
373
+ ], ScatterSymbolDto.prototype, "value", void 0);
374
+ __decorate([
375
+ (0, class_validator_1.IsInt)(),
376
+ __metadata("design:type", Number)
377
+ ], ScatterSymbolDto.prototype, "weight", void 0);
378
+ // --- ScatterGameConfigDto ---
379
+ class ScatterCheckpointDto {
380
+ }
381
+ exports.ScatterCheckpointDto = ScatterCheckpointDto;
382
+ __decorate([
383
+ (0, class_validator_1.IsInt)(),
384
+ __metadata("design:type", Number)
385
+ ], ScatterCheckpointDto.prototype, "spin", void 0);
386
+ __decorate([
387
+ (0, class_validator_1.IsInt)(),
388
+ __metadata("design:type", Number)
389
+ ], ScatterCheckpointDto.prototype, "multiMinValue", void 0);
390
+ __decorate([
391
+ (0, class_validator_1.IsInt)(),
392
+ __metadata("design:type", Number)
393
+ ], ScatterCheckpointDto.prototype, "valueMinValue", void 0);
394
+ class ScatterGameConfigDto {
395
+ }
396
+ exports.ScatterGameConfigDto = ScatterGameConfigDto;
397
+ __decorate([
398
+ (0, class_validator_1.IsInt)(),
399
+ __metadata("design:type", Number)
400
+ ], ScatterGameConfigDto.prototype, "scatterMinNumber", void 0);
401
+ __decorate([
402
+ (0, class_validator_1.IsInt)(),
403
+ __metadata("design:type", Number)
404
+ ], ScatterGameConfigDto.prototype, "scatterSpins", void 0);
405
+ __decorate([
406
+ (0, class_validator_1.IsArray)(),
407
+ (0, class_validator_1.ValidateNested)({ each: true }),
408
+ (0, class_transformer_1.Type)(() => ScatterCheckpointDto),
409
+ __metadata("design:type", Array)
410
+ ], ScatterGameConfigDto.prototype, "scatterCheckpoints", void 0);
411
+ __decorate([
412
+ (0, class_validator_1.IsArray)(),
413
+ (0, class_validator_1.ValidateNested)({ each: true }),
414
+ (0, class_transformer_1.Type)(() => ScatterSymbolDto),
415
+ __metadata("design:type", Array)
416
+ ], ScatterGameConfigDto.prototype, "scatterSymbols", void 0);
417
+ __decorate([
418
+ (0, class_validator_1.IsArray)(),
419
+ (0, class_validator_1.IsObject)({ each: true }),
420
+ __metadata("design:type", Array)
421
+ ], ScatterGameConfigDto.prototype, "scatterSymbolSpins", void 0);
422
+ __decorate([
423
+ (0, class_validator_1.IsArray)(),
424
+ (0, class_validator_1.IsObject)({ each: true }),
425
+ __metadata("design:type", Array)
426
+ ], ScatterGameConfigDto.prototype, "scatterSymbolSlash", void 0);
427
+ class ScatterGameConfigWrapperDto {
428
+ }
429
+ exports.ScatterGameConfigWrapperDto = ScatterGameConfigWrapperDto;
430
+ __decorate([
431
+ (0, class_validator_1.ValidateNested)(),
432
+ (0, class_transformer_1.Type)(() => ScatterGameConfigDto),
433
+ __metadata("design:type", ScatterGameConfigDto)
434
+ ], ScatterGameConfigWrapperDto.prototype, "config", void 0);
435
+ // --- Root Config DTO ---
436
+ class BonnysFortuneGameLogicConfigDto {
437
+ }
438
+ exports.BonnysFortuneGameLogicConfigDto = BonnysFortuneGameLogicConfigDto;
439
+ __decorate([
440
+ (0, class_validator_1.ValidateNested)(),
441
+ (0, class_transformer_1.Type)(() => BaseGameDto),
442
+ __metadata("design:type", BaseGameDto)
443
+ ], BonnysFortuneGameLogicConfigDto.prototype, "baseGame", void 0);
444
+ __decorate([
445
+ (0, class_validator_1.ValidateNested)(),
446
+ (0, class_transformer_1.Type)(() => BonusGamesDto),
447
+ __metadata("design:type", BonusGamesDto)
448
+ ], BonnysFortuneGameLogicConfigDto.prototype, "bonusGames", void 0);
449
+ __decorate([
450
+ (0, class_validator_1.ValidateNested)(),
451
+ (0, class_transformer_1.Type)(() => ScatterGameConfigWrapperDto),
452
+ __metadata("design:type", ScatterGameConfigWrapperDto)
453
+ ], BonnysFortuneGameLogicConfigDto.prototype, "scatterGame", void 0);
454
+ //# sourceMappingURL=bonnys-fortune-config.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bonnys-fortune-config.dto.js","sourceRoot":"","sources":["../../../src/validation/bonnys-fortune/bonnys-fortune-config.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BonnysFortuneGameLogicConfigValidator = void 0;
4
+ const abstract_game_logic_config_validator_1 = require("../abstract-game-logic-config.validator");
5
+ const bonnys_fortune_config_dto_1 = require("./bonnys-fortune-config.dto");
6
+ class BonnysFortuneGameLogicConfigValidator extends abstract_game_logic_config_validator_1.AbstractGameLogicConfigValidator {
7
+ getDtoClass() {
8
+ return bonnys_fortune_config_dto_1.BonnysFortuneGameLogicConfigDto;
9
+ }
10
+ }
11
+ exports.BonnysFortuneGameLogicConfigValidator = BonnysFortuneGameLogicConfigValidator;
12
+ //# sourceMappingURL=bonnys-fortune-config.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bonnys-fortune-config.validator.js","sourceRoot":"","sources":["../../../src/validation/bonnys-fortune/bonnys-fortune-config.validator.ts"],"names":[],"mappings":";;;AAAA,kGAA2F;AAC3F,2EAA8E;AAE9E,MAAa,qCAAsC,SAAQ,uEAAiE;IAChH,WAAW;QACnB,OAAO,2DAA+B,CAAC;IACzC,CAAC;CACF;AAJD,sFAIC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IsNestedIntArray = IsNestedIntArray;
4
+ const class_validator_1 = require("class-validator");
5
+ function IsNestedIntArray(validationOptions) {
6
+ return function (object, propertyName) {
7
+ (0, class_validator_1.registerDecorator)({
8
+ name: 'isNestedIntArray',
9
+ target: object.constructor,
10
+ propertyName: propertyName,
11
+ options: validationOptions,
12
+ validator: {
13
+ validate(value) {
14
+ if (!Array.isArray(value))
15
+ return false;
16
+ return value.every((inner) => Array.isArray(inner) &&
17
+ inner.every((num) => Number.isInteger(num)));
18
+ },
19
+ defaultMessage(args) {
20
+ return `${args.property} must be a nested array of integers`;
21
+ },
22
+ },
23
+ });
24
+ };
25
+ }
26
+ //# sourceMappingURL=IsNestedIntArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsNestedIntArray.js","sourceRoot":"","sources":["../../../src/validation/custom-decorators/IsNestedIntArray.ts"],"names":[],"mappings":";;AAMA,4CAsBC;AA5BD,qDAIyB;AAEzB,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACT,QAAQ,CAAC,KAAU;oBACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACxC,OAAO,KAAK,CAAC,KAAK,CAChB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBACpB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAC9C,CAAC;gBACJ,CAAC;gBACD,cAAc,CAAC,IAAyB;oBACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,qCAAqC,CAAC;gBAC/D,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GameLogicConfigValidationService = void 0;
4
+ class GameLogicConfigValidationService {
5
+ constructor() {
6
+ this.validators = new Map();
7
+ }
8
+ register(gameId, validator) {
9
+ this.validators.set(gameId, validator);
10
+ }
11
+ async validate(gameId, config) {
12
+ const validator = this.validators.get(gameId);
13
+ if (!validator) {
14
+ throw new Error(`No validator registered for gameId: ${gameId}`);
15
+ }
16
+ return validator.validate(config);
17
+ }
18
+ }
19
+ exports.GameLogicConfigValidationService = GameLogicConfigValidationService;
20
+ //# sourceMappingURL=game-logic-config-validation.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-logic-config-validation.service.js","sourceRoot":"","sources":["../../src/validation/game-logic-config-validation.service.ts"],"names":[],"mappings":";;;AAIA,MAAa,gCAAgC;IAA7C;QACU,eAAU,GAChB,IAAI,GAAG,EAAE,CAAC;IAqBd,CAAC;IAnBQ,QAAQ,CACb,MAAc,EACd,SAA+C;QAE/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAc,EACd,MAAe;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AAvBD,4EAuBC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReelStripsConfigValidationService = void 0;
4
+ const reel_dto_1 = require("../config/reel-strips-config/reel.dto");
5
+ const reel_strip_option_dto_1 = require("../config/reel-strips-config/reel-strip-option.dto");
6
+ const reel_strips_config_dto_1 = require("../config/reel-strips-config/reel-strips-config.dto");
7
+ const validation_helper_1 = require("../helpers/validation-helper");
8
+ class ReelStripsConfigValidationService {
9
+ mapRawToDto(raw) {
10
+ const reels = raw.map((reel) => {
11
+ const options = reel.map((optionSymbols) => new reel_strip_option_dto_1.ReelStripOptionDto(optionSymbols));
12
+ return new reel_dto_1.ReelDto(options);
13
+ });
14
+ return new reel_strips_config_dto_1.ReelStripsConfigDto(reels);
15
+ }
16
+ async validate(rawReels) {
17
+ const dto = this.mapRawToDto(rawReels);
18
+ const errors = await validation_helper_1.ValidationHelper.validate(dto);
19
+ if (errors.length > 0) {
20
+ throw new Error('Reel strips validation failed: ' + JSON.stringify(errors, null, 2));
21
+ }
22
+ return dto;
23
+ }
24
+ }
25
+ exports.ReelStripsConfigValidationService = ReelStripsConfigValidationService;
26
+ //# sourceMappingURL=reel-strips-config-validation.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reel-strips-config-validation.service.js","sourceRoot":"","sources":["../../src/validation/reel-strips-config-validation.service.ts"],"names":[],"mappings":";;;AAAA,oEAAgE;AAChE,8FAAwF;AACxF,gGAA0F;AAC1F,oEAAgE;AAEhE,MAAa,iCAAiC;IACpC,WAAW,CAAC,GAAiB;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,0CAAkB,CAAC,aAAa,CAAC,CACzD,CAAC;YACF,OAAO,IAAI,kBAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,4CAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,QAAsB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,oCAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACpE,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvBD,8EAuBC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@omnitronix/bonnys-fortune-game-engine",
3
+ "version": "1.0.0-beta.1",
4
+ "description": "Bonnys Fortune Game Engine",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "rimraf dist && tsc && copyfiles -u 1 'src/**/*.csv' dist/",
9
+ "dev": "tsc --watch",
10
+ "dev:watch": "tsc-watch --onCompilationComplete 'npm run build'",
11
+ "clean": "rimraf dist",
12
+ "lint": "eslint src/**/*.ts",
13
+ "lint:fix": "eslint src/**/*.ts --fix",
14
+ "test": "RNG_CLIENT_MODE=local npm run build && jest",
15
+ "test:watch": "jest --watch",
16
+ "test:coverage": "jest --coverage",
17
+ "prepublishOnly": "npm run clean && npm run build"
18
+ },
19
+ "author": "Omnitronix",
20
+ "license": "UNLICENSED",
21
+ "dependencies": {
22
+ "@omnitronix/rng-client-core": "^1.0.10",
23
+ "class-transformer": "^0.5.1",
24
+ "class-validator": "^0.14.1",
25
+ "reflect-metadata": "^0.1.13",
26
+ "uuid": "^9.0.0",
27
+ "winston": "^3.17.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/jest": "^29.5.0",
31
+ "@types/node": "^20.0.0",
32
+ "@types/uuid": "^9.0.0",
33
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
34
+ "@typescript-eslint/parser": "^6.0.0",
35
+ "copyfiles": "^2.4.1",
36
+ "eslint": "^8.0.0",
37
+ "jest": "^29.5.0",
38
+ "nodemon": "^3.0.0",
39
+ "rimraf": "^6.1.0",
40
+ "ts-jest": "^29.1.0",
41
+ "tsc-watch": "^6.0.4",
42
+ "typescript": "^5.0.0"
43
+ },
44
+ "files": [
45
+ "dist/**/*",
46
+ "README.md"
47
+ ],
48
+ "publishConfig": {
49
+ "registry": "https://registry.npmjs.org/"
50
+ }
51
+ }