@omnitronix/bonnys-fortune-game-engine 1.0.0

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 (124) 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/bonnys-fortune-v1.game-engine.js +173 -0
  5. package/dist/bonnys-fortune-v1.game-engine.js.map +1 -0
  6. package/dist/config/game-logic-config/file-system.game-logic-config-loader.js +57 -0
  7. package/dist/config/game-logic-config/file-system.game-logic-config-loader.js.map +1 -0
  8. package/dist/config/game-logic-config/game-logic-config-loader.js +3 -0
  9. package/dist/config/game-logic-config/game-logic-config-loader.js.map +1 -0
  10. package/dist/config/game-logic-config/game-logic-config.js +386 -0
  11. package/dist/config/game-logic-config/game-logic-config.js.map +1 -0
  12. package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.js +34 -0
  13. package/dist/config/reel-strips-config/file-system.reel-strips-config-loader.js.map +1 -0
  14. package/dist/config/reel-strips-config/reel-strip-option.dto.js +27 -0
  15. package/dist/config/reel-strips-config/reel-strip-option.dto.js.map +1 -0
  16. package/dist/config/reel-strips-config/reel-strips-config-loader.js +3 -0
  17. package/dist/config/reel-strips-config/reel-strips-config-loader.js.map +1 -0
  18. package/dist/config/reel-strips-config/reel-strips-config.dto.js +29 -0
  19. package/dist/config/reel-strips-config/reel-strips-config.dto.js.map +1 -0
  20. package/dist/config/reel-strips-config/reel.dto.js +29 -0
  21. package/dist/config/reel-strips-config/reel.dto.js.map +1 -0
  22. package/dist/config/reel-strips-config/reels-BASE.csv +52 -0
  23. package/dist/config/reel-strips-config/reels-BONUS.csv +52 -0
  24. package/dist/domain/game-logic-configs/bonnys-fortune-game-logic-config.domain.js +134 -0
  25. package/dist/domain/game-logic-configs/bonnys-fortune-game-logic-config.domain.js.map +1 -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/base/game-logic-config-mapper.dispatcher.js +18 -0
  29. package/dist/domain/mappers/base/game-logic-config-mapper.dispatcher.js.map +1 -0
  30. package/dist/domain/mappers/base/game-logic-config-mapper.interface.js +3 -0
  31. package/dist/domain/mappers/base/game-logic-config-mapper.interface.js.map +1 -0
  32. package/dist/domain/mappers/game-logic-configs/bonnys-fortune-game-logic-config.mapper.js +11 -0
  33. package/dist/domain/mappers/game-logic-configs/bonnys-fortune-game-logic-config.mapper.js.map +1 -0
  34. package/dist/domain/mappers/reel-strips-config.mapper.js +17 -0
  35. package/dist/domain/mappers/reel-strips-config.mapper.js.map +1 -0
  36. package/dist/domain/reel-strip-option.js +19 -0
  37. package/dist/domain/reel-strip-option.js.map +1 -0
  38. package/dist/domain/reel-strips-config.js +22 -0
  39. package/dist/domain/reel-strips-config.js.map +1 -0
  40. package/dist/domain/reel.js +19 -0
  41. package/dist/domain/reel.js.map +1 -0
  42. package/dist/domain/types/cheat-trigger-bonus-command.js +3 -0
  43. package/dist/domain/types/cheat-trigger-bonus-command.js.map +1 -0
  44. package/dist/domain/types/cheat-trigger-bonus-request.dto.js +3 -0
  45. package/dist/domain/types/cheat-trigger-bonus-request.dto.js.map +1 -0
  46. package/dist/domain/types/cheat-update-bonus-meter-progress-command.js +3 -0
  47. package/dist/domain/types/cheat-update-bonus-meter-progress-command.js.map +1 -0
  48. package/dist/domain/types/cheat-update-bonus-meter-progress-request.dto.js +3 -0
  49. package/dist/domain/types/cheat-update-bonus-meter-progress-request.dto.js.map +1 -0
  50. package/dist/domain/types/game-spin-command.js +3 -0
  51. package/dist/domain/types/game-spin-command.js.map +1 -0
  52. package/dist/domain/types/game-spin-input.dto.js +3 -0
  53. package/dist/domain/types/game-spin-input.dto.js.map +1 -0
  54. package/dist/domain/types/game-spin-output.dto.js +17 -0
  55. package/dist/domain/types/game-spin-output.dto.js.map +1 -0
  56. package/dist/domain/types/game-symbols.response.dto.js +7 -0
  57. package/dist/domain/types/game-symbols.response.dto.js.map +1 -0
  58. package/dist/domain/types/reel-strip-option.dto.js +27 -0
  59. package/dist/domain/types/reel-strip-option.dto.js.map +1 -0
  60. package/dist/domain/types/reel-strips-config.dto.js +28 -0
  61. package/dist/domain/types/reel-strips-config.dto.js.map +1 -0
  62. package/dist/domain/types/reel.dto.js +28 -0
  63. package/dist/domain/types/reel.dto.js.map +1 -0
  64. package/dist/domain/types/start-bonus-round-command.js +3 -0
  65. package/dist/domain/types/start-bonus-round-command.js.map +1 -0
  66. package/dist/domain/types/start-bonus-round-input.dto.js +3 -0
  67. package/dist/domain/types/start-bonus-round-input.dto.js.map +1 -0
  68. package/dist/game-engine.interface.js +3 -0
  69. package/dist/game-engine.interface.js.map +1 -0
  70. package/dist/helpers/generate-hash.js +9 -0
  71. package/dist/helpers/generate-hash.js.map +1 -0
  72. package/dist/helpers/number-helper.js +43 -0
  73. package/dist/helpers/number-helper.js.map +1 -0
  74. package/dist/helpers/optional-boolean-mapper.js +9 -0
  75. package/dist/helpers/optional-boolean-mapper.js.map +1 -0
  76. package/dist/helpers/uuid-helper.js +11 -0
  77. package/dist/helpers/uuid-helper.js.map +1 -0
  78. package/dist/helpers/validation-helper.js +25 -0
  79. package/dist/helpers/validation-helper.js.map +1 -0
  80. package/dist/index.js +7 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/logger/logger.js +140 -0
  83. package/dist/logger/logger.js.map +1 -0
  84. package/dist/logic/bonnys-fortune.game-logic.js +242 -0
  85. package/dist/logic/bonnys-fortune.game-logic.js.map +1 -0
  86. package/dist/logic/bonnys-fortune.spin-generator.js +88 -0
  87. package/dist/logic/bonnys-fortune.spin-generator.js.map +1 -0
  88. package/dist/logic/bonnys-fortune.types.js +18 -0
  89. package/dist/logic/bonnys-fortune.types.js.map +1 -0
  90. package/dist/logic/bonnys-fortune.win-calculator.js +130 -0
  91. package/dist/logic/bonnys-fortune.win-calculator.js.map +1 -0
  92. package/dist/logic/game-logic-config.interface.js +12 -0
  93. package/dist/logic/game-logic-config.interface.js.map +1 -0
  94. package/dist/logic/handlers/base-game.handler.js +109 -0
  95. package/dist/logic/handlers/base-game.handler.js.map +1 -0
  96. package/dist/logic/handlers/collect-feature-bonus.handler.js +151 -0
  97. package/dist/logic/handlers/collect-feature-bonus.handler.js.map +1 -0
  98. package/dist/logic/handlers/free-spins-bonus.handler.js +68 -0
  99. package/dist/logic/handlers/free-spins-bonus.handler.js.map +1 -0
  100. package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js +74 -0
  101. package/dist/logic/handlers/steering-to-the-fortune-bonus.handler.js.map +1 -0
  102. package/dist/logic/handlers/treasure-hunt-bonus.handler.js +130 -0
  103. package/dist/logic/handlers/treasure-hunt-bonus.handler.js.map +1 -0
  104. package/dist/rng/DummyRngClient.js +89 -0
  105. package/dist/rng/DummyRngClient.js.map +1 -0
  106. package/dist/rng/rng-client.factory.js +23 -0
  107. package/dist/rng/rng-client.factory.js.map +1 -0
  108. package/dist/rng/rng-client.interface.js +3 -0
  109. package/dist/rng/rng-client.interface.js.map +1 -0
  110. package/dist/rng/rng-service.js +78 -0
  111. package/dist/rng/rng-service.js.map +1 -0
  112. package/dist/validation/abstract-game-logic-config.validator.js +18 -0
  113. package/dist/validation/abstract-game-logic-config.validator.js.map +1 -0
  114. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js +545 -0
  115. package/dist/validation/bonnys-fortune/bonnys-fortune-config.dto.js.map +1 -0
  116. package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.js +12 -0
  117. package/dist/validation/bonnys-fortune/bonnys-fortune-config.validator.js.map +1 -0
  118. package/dist/validation/custom-decorators/IsNestedIntArray.js +26 -0
  119. package/dist/validation/custom-decorators/IsNestedIntArray.js.map +1 -0
  120. package/dist/validation/game-logic-config-validation.service.js +20 -0
  121. package/dist/validation/game-logic-config-validation.service.js.map +1 -0
  122. package/dist/validation/reel-strips-config-validation.service.js +26 -0
  123. package/dist/validation/reel-strips-config-validation.service.js.map +1 -0
  124. package/package.json +48 -0
@@ -0,0 +1,545 @@
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.FreeSpinsDto = exports.FreeSpinsEvaluationConfigDto = exports.FreeSpinsProgressiveUnlockDto = 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.PaidSpinsConfigDto = exports.ReelsOptionsDto = exports.BaseGameConfigDto = exports.EvaluationConfigDto = 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.IsOptional)(),
33
+ (0, class_validator_1.IsBoolean)(),
34
+ __metadata("design:type", Boolean)
35
+ ], SymbolMultipliersDto.prototype, "isWild", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsBoolean)(),
39
+ __metadata("design:type", Boolean)
40
+ ], SymbolMultipliersDto.prototype, "isScatter", void 0);
41
+ // --- SymbolDefinitions ---
42
+ class CollectFeatureSymbolsDto {
43
+ }
44
+ exports.CollectFeatureSymbolsDto = CollectFeatureSymbolsDto;
45
+ __decorate([
46
+ (0, class_validator_1.IsObject)(),
47
+ __metadata("design:type", Object)
48
+ ], CollectFeatureSymbolsDto.prototype, "multipliers", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsObject)(),
51
+ __metadata("design:type", Object)
52
+ ], CollectFeatureSymbolsDto.prototype, "values", void 0);
53
+ class SymbolRangeDto {
54
+ }
55
+ exports.SymbolRangeDto = SymbolRangeDto;
56
+ __decorate([
57
+ (0, class_validator_1.IsInt)(),
58
+ __metadata("design:type", Number)
59
+ ], SymbolRangeDto.prototype, "minIndex", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsInt)(),
62
+ __metadata("design:type", Number)
63
+ ], SymbolRangeDto.prototype, "maxIndex", void 0);
64
+ class SymbolDefinitionsDto {
65
+ }
66
+ exports.SymbolDefinitionsDto = SymbolDefinitionsDto;
67
+ __decorate([
68
+ (0, class_validator_1.ValidateNested)(),
69
+ (0, class_transformer_1.Type)(() => SymbolRangeDto),
70
+ __metadata("design:type", SymbolRangeDto)
71
+ ], SymbolDefinitionsDto.prototype, "baseSymbols", void 0);
72
+ __decorate([
73
+ (0, class_validator_1.IsObject)(),
74
+ __metadata("design:type", Object)
75
+ ], SymbolDefinitionsDto.prototype, "specialSymbols", void 0);
76
+ __decorate([
77
+ (0, class_validator_1.ValidateNested)(),
78
+ (0, class_transformer_1.Type)(() => CollectFeatureSymbolsDto),
79
+ __metadata("design:type", CollectFeatureSymbolsDto)
80
+ ], SymbolDefinitionsDto.prototype, "collectFeatureSymbols", void 0);
81
+ // --- BaseGameConfig ---
82
+ class LayoutDto {
83
+ }
84
+ exports.LayoutDto = LayoutDto;
85
+ __decorate([
86
+ (0, class_validator_1.IsInt)(),
87
+ __metadata("design:type", Number)
88
+ ], LayoutDto.prototype, "rows", void 0);
89
+ __decorate([
90
+ (0, class_validator_1.IsInt)(),
91
+ __metadata("design:type", Number)
92
+ ], LayoutDto.prototype, "reels", void 0);
93
+ class WinConfigDto {
94
+ }
95
+ exports.WinConfigDto = WinConfigDto;
96
+ __decorate([
97
+ (0, class_validator_1.IsInt)(),
98
+ __metadata("design:type", Number)
99
+ ], WinConfigDto.prototype, "minLength", void 0);
100
+ __decorate([
101
+ (0, class_validator_1.IsInt)(),
102
+ __metadata("design:type", Number)
103
+ ], WinConfigDto.prototype, "maxLength", void 0);
104
+ class EvaluationConfigDto {
105
+ }
106
+ exports.EvaluationConfigDto = EvaluationConfigDto;
107
+ __decorate([
108
+ (0, class_validator_1.IsString)(),
109
+ __metadata("design:type", String)
110
+ ], EvaluationConfigDto.prototype, "defaultConfig", void 0);
111
+ __decorate([
112
+ (0, class_validator_1.IsArray)(),
113
+ (0, class_validator_1.IsString)({ each: true }),
114
+ (0, class_validator_1.IsOptional)(),
115
+ __metadata("design:type", Array)
116
+ ], EvaluationConfigDto.prototype, "alternativeConfigs", void 0);
117
+ __decorate([
118
+ (0, class_validator_1.IsOptional)(),
119
+ (0, class_validator_1.IsObject)(),
120
+ __metadata("design:type", Object)
121
+ ], EvaluationConfigDto.prototype, "selectionWeights", void 0);
122
+ class BaseGameConfigDto {
123
+ }
124
+ exports.BaseGameConfigDto = BaseGameConfigDto;
125
+ __decorate([
126
+ (0, class_validator_1.ValidateNested)(),
127
+ (0, class_transformer_1.Type)(() => LayoutDto),
128
+ __metadata("design:type", LayoutDto)
129
+ ], BaseGameConfigDto.prototype, "layout", void 0);
130
+ __decorate([
131
+ (0, class_validator_1.ValidateNested)(),
132
+ (0, class_transformer_1.Type)(() => WinConfigDto),
133
+ __metadata("design:type", WinConfigDto)
134
+ ], BaseGameConfigDto.prototype, "winConfig", void 0);
135
+ __decorate([
136
+ (0, class_validator_1.IsArray)(),
137
+ (0, class_validator_1.IsInt)({ each: true }),
138
+ __metadata("design:type", Array)
139
+ ], BaseGameConfigDto.prototype, "betLevels", void 0);
140
+ __decorate([
141
+ (0, class_validator_1.IsInt)(),
142
+ __metadata("design:type", Number)
143
+ ], BaseGameConfigDto.prototype, "betDefault", void 0);
144
+ __decorate([
145
+ (0, class_validator_1.ValidateNested)(),
146
+ (0, class_transformer_1.Type)(() => EvaluationConfigDto),
147
+ __metadata("design:type", EvaluationConfigDto)
148
+ ], BaseGameConfigDto.prototype, "evaluationConfig", void 0);
149
+ __decorate([
150
+ (0, class_validator_1.IsString)(),
151
+ __metadata("design:type", String)
152
+ ], BaseGameConfigDto.prototype, "serviceMode", void 0);
153
+ __decorate([
154
+ (0, class_validator_1.IsString)(),
155
+ __metadata("design:type", String)
156
+ ], BaseGameConfigDto.prototype, "evaluationType", void 0);
157
+ // --- PaidSpinsConfig ---
158
+ class ReelsOptionsDto {
159
+ }
160
+ exports.ReelsOptionsDto = ReelsOptionsDto;
161
+ __decorate([
162
+ (0, class_validator_1.IsInt)(),
163
+ __metadata("design:type", Number)
164
+ ], ReelsOptionsDto.prototype, "numberOfOptions", void 0);
165
+ __decorate([
166
+ (0, class_validator_1.IsArray)(),
167
+ (0, class_validator_1.IsInt)({ each: true }),
168
+ __metadata("design:type", Array)
169
+ ], ReelsOptionsDto.prototype, "optionWeights", void 0);
170
+ class PaidSpinsConfigDto {
171
+ }
172
+ exports.PaidSpinsConfigDto = PaidSpinsConfigDto;
173
+ __decorate([
174
+ (0, class_validator_1.IsInt)(),
175
+ __metadata("design:type", Number)
176
+ ], PaidSpinsConfigDto.prototype, "screenHeight", void 0);
177
+ __decorate([
178
+ (0, class_validator_1.IsInt)(),
179
+ __metadata("design:type", Number)
180
+ ], PaidSpinsConfigDto.prototype, "reelsLength", void 0);
181
+ __decorate([
182
+ (0, class_validator_1.ValidateNested)(),
183
+ (0, class_transformer_1.Type)(() => ReelsOptionsDto),
184
+ __metadata("design:type", ReelsOptionsDto)
185
+ ], PaidSpinsConfigDto.prototype, "reelsOptions", void 0);
186
+ // --- BonusGameMeter ---
187
+ class BonusGameMeterDto {
188
+ }
189
+ exports.BonusGameMeterDto = BonusGameMeterDto;
190
+ __decorate([
191
+ (0, class_validator_1.IsString)(),
192
+ __metadata("design:type", String)
193
+ ], BonusGameMeterDto.prototype, "symbol", void 0);
194
+ __decorate([
195
+ (0, class_validator_1.IsInt)(),
196
+ __metadata("design:type", Number)
197
+ ], BonusGameMeterDto.prototype, "min", void 0);
198
+ __decorate([
199
+ (0, class_validator_1.IsInt)(),
200
+ __metadata("design:type", Number)
201
+ ], BonusGameMeterDto.prototype, "max", void 0);
202
+ // --- BaseGame ---
203
+ class BaseGameDto {
204
+ }
205
+ exports.BaseGameDto = BaseGameDto;
206
+ __decorate([
207
+ (0, class_validator_1.IsArray)(),
208
+ (0, class_validator_1.ValidateNested)({ each: true }),
209
+ (0, class_transformer_1.Type)(() => SymbolMultipliersDto),
210
+ __metadata("design:type", Array)
211
+ ], BaseGameDto.prototype, "symbolMultipliers", void 0);
212
+ __decorate([
213
+ (0, class_validator_1.ValidateNested)(),
214
+ (0, class_transformer_1.Type)(() => SymbolDefinitionsDto),
215
+ __metadata("design:type", SymbolDefinitionsDto)
216
+ ], BaseGameDto.prototype, "symbolDefinitions", void 0);
217
+ __decorate([
218
+ (0, class_validator_1.ValidateNested)(),
219
+ (0, class_transformer_1.Type)(() => BaseGameConfigDto),
220
+ __metadata("design:type", BaseGameConfigDto)
221
+ ], BaseGameDto.prototype, "baseGameConfig", void 0);
222
+ __decorate([
223
+ (0, class_validator_1.ValidateNested)(),
224
+ (0, class_transformer_1.Type)(() => PaidSpinsConfigDto),
225
+ __metadata("design:type", PaidSpinsConfigDto)
226
+ ], BaseGameDto.prototype, "paidSpinsConfig", void 0);
227
+ __decorate([
228
+ (0, class_validator_1.IsObject)(),
229
+ __metadata("design:type", Object)
230
+ ], BaseGameDto.prototype, "paidHSymbolWeights", void 0);
231
+ __decorate([
232
+ (0, class_validator_1.IsObject)(),
233
+ __metadata("design:type", Object)
234
+ ], BaseGameDto.prototype, "paidHSymbolReelWeights", void 0);
235
+ __decorate([
236
+ (0, class_validator_1.IsObject)(),
237
+ __metadata("design:type", Object)
238
+ ], BaseGameDto.prototype, "paidScatterReelWeights", void 0);
239
+ __decorate([
240
+ (0, class_validator_1.IsObject)(),
241
+ __metadata("design:type", Object)
242
+ ], BaseGameDto.prototype, "bonusGameMeters", void 0);
243
+ // --- BonusGame Specific Config DTOs ---
244
+ class TreasureHuntBonusConfigDto {
245
+ }
246
+ exports.TreasureHuntBonusConfigDto = TreasureHuntBonusConfigDto;
247
+ __decorate([
248
+ (0, class_validator_1.IsInt)(),
249
+ __metadata("design:type", Number)
250
+ ], TreasureHuntBonusConfigDto.prototype, "symbolsCount", void 0);
251
+ __decorate([
252
+ (0, class_validator_1.IsInt)(),
253
+ __metadata("design:type", Number)
254
+ ], TreasureHuntBonusConfigDto.prototype, "stepsCount", void 0);
255
+ __decorate([
256
+ (0, class_validator_1.IsObject)(),
257
+ __metadata("design:type", Object)
258
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotMultipliers", void 0);
259
+ __decorate([
260
+ (0, class_validator_1.IsObject)(),
261
+ __metadata("design:type", Object)
262
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotStartCounts", void 0);
263
+ __decorate([
264
+ (0, class_validator_1.IsObject)(),
265
+ __metadata("design:type", Object)
266
+ ], TreasureHuntBonusConfigDto.prototype, "jackpotScreenCounts", void 0);
267
+ __decorate([
268
+ (0, class_validator_1.IsObject)(),
269
+ __metadata("design:type", Object)
270
+ ], TreasureHuntBonusConfigDto.prototype, "winningWeights", void 0);
271
+ // --- BonusGameEvaluationConfigDto ---
272
+ class BonusGameEvaluationConfigDto {
273
+ }
274
+ exports.BonusGameEvaluationConfigDto = BonusGameEvaluationConfigDto;
275
+ __decorate([
276
+ (0, class_validator_1.IsString)(),
277
+ __metadata("design:type", String)
278
+ ], BonusGameEvaluationConfigDto.prototype, "defaultConfig", void 0);
279
+ __decorate([
280
+ (0, class_validator_1.IsArray)(),
281
+ (0, class_validator_1.IsString)({ each: true }),
282
+ (0, class_validator_1.IsOptional)(),
283
+ __metadata("design:type", Array)
284
+ ], BonusGameEvaluationConfigDto.prototype, "alternativeConfigs", void 0);
285
+ __decorate([
286
+ (0, class_validator_1.IsOptional)(),
287
+ (0, class_validator_1.IsObject)(),
288
+ __metadata("design:type", Object)
289
+ ], BonusGameEvaluationConfigDto.prototype, "selectionWeights", void 0);
290
+ // --- BonusGameDto (discriminated union with validation) ---
291
+ class BaseBonusGameDto {
292
+ }
293
+ exports.BaseBonusGameDto = BaseBonusGameDto;
294
+ __decorate([
295
+ (0, class_validator_1.IsString)(),
296
+ __metadata("design:type", String)
297
+ ], BaseBonusGameDto.prototype, "type", void 0);
298
+ __decorate([
299
+ (0, class_validator_1.IsString)(),
300
+ __metadata("design:type", String)
301
+ ], BaseBonusGameDto.prototype, "potMeter", void 0);
302
+ __decorate([
303
+ (0, class_validator_1.ValidateNested)(),
304
+ (0, class_transformer_1.Type)(() => BonusGameEvaluationConfigDto),
305
+ __metadata("design:type", BonusGameEvaluationConfigDto)
306
+ ], BaseBonusGameDto.prototype, "evaluationConfig", void 0);
307
+ class TreasureHuntBonusGameDto extends BaseBonusGameDto {
308
+ }
309
+ exports.TreasureHuntBonusGameDto = TreasureHuntBonusGameDto;
310
+ __decorate([
311
+ (0, class_validator_1.ValidateNested)(),
312
+ (0, class_transformer_1.Type)(() => TreasureHuntBonusConfigDto),
313
+ __metadata("design:type", TreasureHuntBonusConfigDto)
314
+ ], TreasureHuntBonusGameDto.prototype, "config", void 0);
315
+ class FreeSpinTypeDto {
316
+ }
317
+ exports.FreeSpinTypeDto = FreeSpinTypeDto;
318
+ __decorate([
319
+ (0, class_validator_1.ValidateNested)(),
320
+ (0, class_transformer_1.Type)(() => LayoutDto),
321
+ __metadata("design:type", LayoutDto)
322
+ ], FreeSpinTypeDto.prototype, "layout", void 0);
323
+ __decorate([
324
+ (0, class_validator_1.IsInt)(),
325
+ __metadata("design:type", Number)
326
+ ], FreeSpinTypeDto.prototype, "spins", void 0);
327
+ __decorate([
328
+ (0, class_validator_1.IsInt)(),
329
+ __metadata("design:type", Number)
330
+ ], FreeSpinTypeDto.prototype, "multiplier", void 0);
331
+ __decorate([
332
+ (0, class_validator_1.IsInt)(),
333
+ __metadata("design:type", Number)
334
+ ], FreeSpinTypeDto.prototype, "weight", void 0);
335
+ __decorate([
336
+ (0, class_validator_1.IsArray)(),
337
+ (0, class_validator_1.IsInt)({ each: true }),
338
+ __metadata("design:type", Array)
339
+ ], FreeSpinTypeDto.prototype, "reelsOptionsWeights", void 0);
340
+ class FreeSpinBonusConfigDto {
341
+ }
342
+ exports.FreeSpinBonusConfigDto = FreeSpinBonusConfigDto;
343
+ __decorate([
344
+ (0, class_validator_1.IsArray)(),
345
+ (0, class_validator_1.ValidateNested)({ each: true }),
346
+ (0, class_transformer_1.Type)(() => FreeSpinTypeDto),
347
+ __metadata("design:type", Array)
348
+ ], FreeSpinBonusConfigDto.prototype, "spinTypes", void 0);
349
+ class FreeSpinBonusGameDto extends BaseBonusGameDto {
350
+ }
351
+ exports.FreeSpinBonusGameDto = FreeSpinBonusGameDto;
352
+ __decorate([
353
+ (0, class_validator_1.ValidateNested)(),
354
+ (0, class_transformer_1.Type)(() => FreeSpinBonusConfigDto),
355
+ __metadata("design:type", FreeSpinBonusConfigDto)
356
+ ], FreeSpinBonusGameDto.prototype, "config", void 0);
357
+ class SteeringToTheFortuneWheelResultDto {
358
+ }
359
+ exports.SteeringToTheFortuneWheelResultDto = SteeringToTheFortuneWheelResultDto;
360
+ __decorate([
361
+ (0, class_validator_1.IsString)(),
362
+ __metadata("design:type", String)
363
+ ], SteeringToTheFortuneWheelResultDto.prototype, "type", void 0);
364
+ __decorate([
365
+ (0, class_validator_1.IsOptional)(),
366
+ (0, class_validator_1.IsInt)(),
367
+ __metadata("design:type", Number)
368
+ ], SteeringToTheFortuneWheelResultDto.prototype, "value", void 0);
369
+ __decorate([
370
+ (0, class_validator_1.IsOptional)(),
371
+ (0, class_validator_1.IsString)(),
372
+ __metadata("design:type", String)
373
+ ], SteeringToTheFortuneWheelResultDto.prototype, "bonusType", void 0);
374
+ __decorate([
375
+ (0, class_validator_1.IsInt)(),
376
+ __metadata("design:type", Number)
377
+ ], SteeringToTheFortuneWheelResultDto.prototype, "weight", void 0);
378
+ class SteeringToTheFortuneBonusConfigDto {
379
+ }
380
+ exports.SteeringToTheFortuneBonusConfigDto = SteeringToTheFortuneBonusConfigDto;
381
+ __decorate([
382
+ (0, class_validator_1.IsArray)(),
383
+ (0, class_validator_1.ValidateNested)({ each: true }),
384
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneWheelResultDto),
385
+ __metadata("design:type", Array)
386
+ ], SteeringToTheFortuneBonusConfigDto.prototype, "wheelResults", void 0);
387
+ class SteeringToTheFortuneBonusGameDto extends BaseBonusGameDto {
388
+ }
389
+ exports.SteeringToTheFortuneBonusGameDto = SteeringToTheFortuneBonusGameDto;
390
+ __decorate([
391
+ (0, class_validator_1.ValidateNested)(),
392
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneBonusConfigDto),
393
+ __metadata("design:type", SteeringToTheFortuneBonusConfigDto)
394
+ ], SteeringToTheFortuneBonusGameDto.prototype, "config", void 0);
395
+ class BonusGamesDto {
396
+ }
397
+ exports.BonusGamesDto = BonusGamesDto;
398
+ __decorate([
399
+ (0, class_validator_1.ValidateNested)(),
400
+ (0, class_transformer_1.Type)(() => TreasureHuntBonusGameDto),
401
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame1'] !== undefined),
402
+ __metadata("design:type", TreasureHuntBonusGameDto)
403
+ ], BonusGamesDto.prototype, "bonusGame1", void 0);
404
+ __decorate([
405
+ (0, class_validator_1.ValidateNested)(),
406
+ (0, class_transformer_1.Type)(() => FreeSpinBonusGameDto),
407
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame2'] !== undefined),
408
+ __metadata("design:type", FreeSpinBonusGameDto)
409
+ ], BonusGamesDto.prototype, "bonusGame2", void 0);
410
+ __decorate([
411
+ (0, class_validator_1.ValidateNested)(),
412
+ (0, class_transformer_1.Type)(() => SteeringToTheFortuneBonusGameDto),
413
+ (0, class_validator_1.ValidateIf)((o) => o['bonusGame3'] !== undefined),
414
+ __metadata("design:type", SteeringToTheFortuneBonusGameDto)
415
+ ], BonusGamesDto.prototype, "bonusGame3", void 0);
416
+ // --- FreeSpinsProgressiveUnlock ---
417
+ class FreeSpinsProgressiveUnlockDto {
418
+ }
419
+ exports.FreeSpinsProgressiveUnlockDto = FreeSpinsProgressiveUnlockDto;
420
+ __decorate([
421
+ (0, class_validator_1.IsInt)(),
422
+ __metadata("design:type", Number)
423
+ ], FreeSpinsProgressiveUnlockDto.prototype, "requiredSpins", void 0);
424
+ __decorate([
425
+ (0, class_validator_1.IsInt)(),
426
+ __metadata("design:type", Number)
427
+ ], FreeSpinsProgressiveUnlockDto.prototype, "weight", void 0);
428
+ class FreeSpinsEvaluationConfigDto {
429
+ }
430
+ exports.FreeSpinsEvaluationConfigDto = FreeSpinsEvaluationConfigDto;
431
+ __decorate([
432
+ (0, class_validator_1.IsString)(),
433
+ __metadata("design:type", String)
434
+ ], FreeSpinsEvaluationConfigDto.prototype, "defaultConfig", void 0);
435
+ __decorate([
436
+ (0, class_validator_1.IsObject)(),
437
+ __metadata("design:type", Object)
438
+ ], FreeSpinsEvaluationConfigDto.prototype, "progressiveUnlock", void 0);
439
+ // --- FreeSpinsDto ---
440
+ class FreeSpinsDto {
441
+ }
442
+ exports.FreeSpinsDto = FreeSpinsDto;
443
+ __decorate([
444
+ (0, class_validator_1.ValidateNested)(),
445
+ (0, class_transformer_1.Type)(() => FreeSpinsEvaluationConfigDto),
446
+ __metadata("design:type", FreeSpinsEvaluationConfigDto)
447
+ ], FreeSpinsDto.prototype, "evaluationConfig", void 0);
448
+ // --- ScatterSymbolDto ---
449
+ class ScatterSymbolDto {
450
+ }
451
+ exports.ScatterSymbolDto = ScatterSymbolDto;
452
+ __decorate([
453
+ (0, class_validator_1.IsString)(),
454
+ __metadata("design:type", String)
455
+ ], ScatterSymbolDto.prototype, "symbolId", void 0);
456
+ __decorate([
457
+ (0, class_validator_1.IsInt)(),
458
+ __metadata("design:type", Number)
459
+ ], ScatterSymbolDto.prototype, "value", void 0);
460
+ __decorate([
461
+ (0, class_validator_1.IsInt)(),
462
+ __metadata("design:type", Number)
463
+ ], ScatterSymbolDto.prototype, "weight", void 0);
464
+ // --- ScatterGameConfigDto ---
465
+ class ScatterCheckpointDto {
466
+ }
467
+ exports.ScatterCheckpointDto = ScatterCheckpointDto;
468
+ __decorate([
469
+ (0, class_validator_1.IsInt)(),
470
+ __metadata("design:type", Number)
471
+ ], ScatterCheckpointDto.prototype, "spin", void 0);
472
+ __decorate([
473
+ (0, class_validator_1.IsInt)(),
474
+ __metadata("design:type", Number)
475
+ ], ScatterCheckpointDto.prototype, "multiMinValue", void 0);
476
+ __decorate([
477
+ (0, class_validator_1.IsInt)(),
478
+ __metadata("design:type", Number)
479
+ ], ScatterCheckpointDto.prototype, "valueMinValue", void 0);
480
+ class ScatterGameConfigDto {
481
+ }
482
+ exports.ScatterGameConfigDto = ScatterGameConfigDto;
483
+ __decorate([
484
+ (0, class_validator_1.IsInt)(),
485
+ __metadata("design:type", Number)
486
+ ], ScatterGameConfigDto.prototype, "scatterMinNumber", void 0);
487
+ __decorate([
488
+ (0, class_validator_1.IsInt)(),
489
+ __metadata("design:type", Number)
490
+ ], ScatterGameConfigDto.prototype, "scatterSpins", void 0);
491
+ __decorate([
492
+ (0, class_validator_1.IsArray)(),
493
+ (0, class_validator_1.ValidateNested)({ each: true }),
494
+ (0, class_transformer_1.Type)(() => ScatterCheckpointDto),
495
+ __metadata("design:type", Array)
496
+ ], ScatterGameConfigDto.prototype, "scatterCheckpoints", void 0);
497
+ __decorate([
498
+ (0, class_validator_1.IsArray)(),
499
+ (0, class_validator_1.ValidateNested)({ each: true }),
500
+ (0, class_transformer_1.Type)(() => ScatterSymbolDto),
501
+ __metadata("design:type", Array)
502
+ ], ScatterGameConfigDto.prototype, "scatterSymbols", void 0);
503
+ __decorate([
504
+ (0, class_validator_1.IsArray)(),
505
+ (0, class_validator_1.IsObject)({ each: true }),
506
+ __metadata("design:type", Array)
507
+ ], ScatterGameConfigDto.prototype, "scatterSymbolSpins", void 0);
508
+ __decorate([
509
+ (0, class_validator_1.IsArray)(),
510
+ (0, class_validator_1.IsObject)({ each: true }),
511
+ __metadata("design:type", Array)
512
+ ], ScatterGameConfigDto.prototype, "scatterSymbolSlash", void 0);
513
+ class ScatterGameConfigWrapperDto {
514
+ }
515
+ exports.ScatterGameConfigWrapperDto = ScatterGameConfigWrapperDto;
516
+ __decorate([
517
+ (0, class_validator_1.ValidateNested)(),
518
+ (0, class_transformer_1.Type)(() => ScatterGameConfigDto),
519
+ __metadata("design:type", ScatterGameConfigDto)
520
+ ], ScatterGameConfigWrapperDto.prototype, "config", void 0);
521
+ // --- Root Config DTO ---
522
+ class BonnysFortuneGameLogicConfigDto {
523
+ }
524
+ exports.BonnysFortuneGameLogicConfigDto = BonnysFortuneGameLogicConfigDto;
525
+ __decorate([
526
+ (0, class_validator_1.ValidateNested)(),
527
+ (0, class_transformer_1.Type)(() => BaseGameDto),
528
+ __metadata("design:type", BaseGameDto)
529
+ ], BonnysFortuneGameLogicConfigDto.prototype, "baseGame", void 0);
530
+ __decorate([
531
+ (0, class_validator_1.ValidateNested)(),
532
+ (0, class_transformer_1.Type)(() => BonusGamesDto),
533
+ __metadata("design:type", BonusGamesDto)
534
+ ], BonnysFortuneGameLogicConfigDto.prototype, "bonusGames", void 0);
535
+ __decorate([
536
+ (0, class_validator_1.ValidateNested)(),
537
+ (0, class_transformer_1.Type)(() => FreeSpinsDto),
538
+ __metadata("design:type", FreeSpinsDto)
539
+ ], BonnysFortuneGameLogicConfigDto.prototype, "freeSpins", void 0);
540
+ __decorate([
541
+ (0, class_validator_1.ValidateNested)(),
542
+ (0, class_transformer_1.Type)(() => ScatterGameConfigWrapperDto),
543
+ __metadata("design:type", ScatterGameConfigWrapperDto)
544
+ ], BonnysFortuneGameLogicConfigDto.prototype, "scatterGame", void 0);
545
+ //# 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"}