bb-api-platforma 0.1.168

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.
@@ -0,0 +1,139 @@
1
+ export interface CouponHead {
2
+ ID: number;
3
+ UserID: number;
4
+ DateID: string;
5
+ AmountIn: number;
6
+ AmountOut: number;
7
+ CashOutUserID: number | null;
8
+ DateOut: string | null;
9
+ ParentID: number;
10
+ LiveType: number;
11
+ BetStatus: number;
12
+ TranID_In: number;
13
+ TranID_Return: number | null;
14
+ TranID_Calc: number | null;
15
+ SoftType: number;
16
+ BetHash: string;
17
+ BetHeadFlags: number;
18
+ CountEvents: number;
19
+ AmountPosWin: number;
20
+ StatusCode: number;
21
+ }
22
+ export interface OddsContent {
23
+ NameBet: string | null;
24
+ NameTurnir: string | null;
25
+ TurnirId: number;
26
+ SportId: number;
27
+ NameCom1: string;
28
+ NameCom2: string | null;
29
+ Result: string | null;
30
+ CountResults: number;
31
+ MainResult: string | null;
32
+ EventStatus: number;
33
+ OddsDifference: string;
34
+ DateEvent: string | null;
35
+ OddsForDisplay: string;
36
+ ID: number;
37
+ HeadID: number;
38
+ ParentID: number | null;
39
+ LinesID: number;
40
+ BetFlags: number;
41
+ Odds: number;
42
+ OddsOrig: number;
43
+ HandSize: number | null;
44
+ BetVarID: number;
45
+ Add1: number | null;
46
+ Add2: number | null;
47
+ BetStatus: number;
48
+ AuthorOdds: number;
49
+ SiteOdds: number | null;
50
+ AmountIn: number | null;
51
+ AmountOut: number;
52
+ AmountItem: number | null;
53
+ Score: string;
54
+ AuthorName: string | null;
55
+ IsNewRecord: boolean;
56
+ IsHeadsContent: boolean;
57
+ LiveFlagForCalcAdditionalBets: number;
58
+ }
59
+ export interface BetCoupon {
60
+ DomainName: string;
61
+ LoginName: string;
62
+ ShortUserName: string;
63
+ PointName: string;
64
+ CurrencyName: string;
65
+ LanguageId: number;
66
+ IsLongNames: boolean;
67
+ BillNumber: string;
68
+ LocSoftType: number;
69
+ FiscalNumber: string | null;
70
+ Head: CouponHead;
71
+ Content: OddsContent[];
72
+ PutBetErrors: number;
73
+ PercentReturnMoney: number;
74
+ AmaountOutPercent: number;
75
+ PointId: number;
76
+ PointGroupId: number;
77
+ Coef: number;
78
+ CoefOrig: number;
79
+ }
80
+ export declare class Coupon {
81
+ statusesDict: {
82
+ BetHeadFlags: {
83
+ "0": string;
84
+ "1": string;
85
+ "2": string;
86
+ "4": string;
87
+ "8": string;
88
+ "16": string;
89
+ "32": string;
90
+ "64": string;
91
+ "96": string;
92
+ };
93
+ BetStatus: {
94
+ "0": string;
95
+ "1": string;
96
+ "2": string;
97
+ "4": string;
98
+ "8": string;
99
+ "16": string;
100
+ "32": string;
101
+ "64": string;
102
+ "128": string;
103
+ "256": string;
104
+ "512": string;
105
+ "1024": string;
106
+ "2048": string;
107
+ "4096": string;
108
+ "8192": string;
109
+ "16384": string;
110
+ };
111
+ LiveType: {
112
+ "0": string;
113
+ "1": string;
114
+ "2": string;
115
+ "3": string;
116
+ };
117
+ };
118
+ constructor(lang?: string);
119
+ private decomposeNumberIntoPowersOfTwo;
120
+ private getStatuses;
121
+ convertBetslipDataDefault(bc?: BetCoupon): {
122
+ text: string;
123
+ data: {
124
+ [x: string]: string | string[];
125
+ };
126
+ header: {
127
+ "Point name": string;
128
+ "Bet date": string;
129
+ "Bet ID": string;
130
+ BetStatus: string | string[];
131
+ };
132
+ bets: never[];
133
+ footer: {
134
+ PlacedAmount: string;
135
+ "Total odds": string;
136
+ Win: string;
137
+ };
138
+ };
139
+ }
package/dist/coupon.js ADDED
@@ -0,0 +1,491 @@
1
+ const cTest = {
2
+ "DomainName": "BR",
3
+ "LoginName": "igrokus",
4
+ "ShortUserName": "Us",
5
+ "PointName": "Долларовые счета",
6
+ "CurrencyName": "USD",
7
+ "LanguageId": 0,
8
+ "IsLongNames": false,
9
+ "BillNumber": "643610470197",
10
+ "LocSoftType": 0,
11
+ "FiscalNumber": null,
12
+ "Head": {
13
+ "ID": 137461,
14
+ "UserID": 55335,
15
+ "DateID": "2024-08-14T22:44:11.597",
16
+ "AmountIn": 1,
17
+ "AmountOut": 26.63,
18
+ "CashOutUserID": null,
19
+ "DateOut": null,
20
+ "ParentID": 0,
21
+ "LiveType": 3,
22
+ "BetStatus": 1,
23
+ "TranID_In": 785114,
24
+ "TranID_Return": null,
25
+ "TranID_Calc": null,
26
+ "SoftType": 1,
27
+ "BetHash": "хеш ставки",
28
+ "BetHeadFlags": 18,
29
+ "CountEvents": 5,
30
+ "AmountPosWin": 26.63,
31
+ "StatusCode": 0
32
+ },
33
+ "Content": [
34
+ {
35
+ "NameBet": null,
36
+ "NameTurnir": null,
37
+ "TurnirId": 0,
38
+ "SportId": 0,
39
+ "NameCom1": "Экспресс",
40
+ "NameCom2": null,
41
+ "Result": null,
42
+ "CountResults": 0,
43
+ "MainResult": null,
44
+ "EventStatus": 0,
45
+ "OddsDifference": "26.6305",
46
+ "DateEvent": null,
47
+ "OddsForDisplay": "26.631",
48
+ "ID": 146814,
49
+ "HeadID": 137461,
50
+ "ParentID": null,
51
+ "LinesID": 0,
52
+ "BetFlags": 98,
53
+ "Odds": 26.6305,
54
+ "OddsOrig": 26.6305,
55
+ "HandSize": null,
56
+ "BetVarID": 0,
57
+ "Add1": 5,
58
+ "Add2": null,
59
+ "BetStatus": 1,
60
+ "AuthorOdds": 0,
61
+ "SiteOdds": null,
62
+ "AmountIn": 1,
63
+ "AmountOut": 26.63,
64
+ "AmountItem": null,
65
+ "Score": "",
66
+ "AuthorName": null,
67
+ "IsNewRecord": false,
68
+ "IsHeadsContent": true,
69
+ "LiveFlagForCalcAdditionalBets": 64
70
+ },
71
+ {
72
+ "NameBet": "П1",
73
+ "NameTurnir": "Футбол. Суперкубок УЕФА",
74
+ "TurnirId": 47,
75
+ "SportId": 5,
76
+ "NameCom1": "Реал Мадрид",
77
+ "NameCom2": "Аталанта",
78
+ "Result": "0:0 (0:0)",
79
+ "CountResults": 0,
80
+ "MainResult": null,
81
+ "EventStatus": 2,
82
+ "OddsDifference": "2.1000",
83
+ "DateEvent": "2024-08-14T22:00:00",
84
+ "OddsForDisplay": "2.10",
85
+ "ID": 146815,
86
+ "HeadID": 137461,
87
+ "ParentID": 146814,
88
+ "LinesID": 654886,
89
+ "BetFlags": 67,
90
+ "Odds": 2.1,
91
+ "OddsOrig": 2.1,
92
+ "HandSize": null,
93
+ "BetVarID": 1,
94
+ "Add1": null,
95
+ "Add2": null,
96
+ "BetStatus": 1,
97
+ "AuthorOdds": 1,
98
+ "SiteOdds": 11,
99
+ "AmountIn": null,
100
+ "AmountOut": 5.8587,
101
+ "AmountItem": 0.22,
102
+ "Score": "0:0 44`",
103
+ "AuthorName": "admin",
104
+ "IsNewRecord": false,
105
+ "IsHeadsContent": false,
106
+ "LiveFlagForCalcAdditionalBets": 32
107
+ },
108
+ {
109
+ "NameBet": "П2",
110
+ "NameTurnir": "Футбол. Суперкубок УЕФА. Статистика",
111
+ "TurnirId": 2408,
112
+ "SportId": 5,
113
+ "NameCom1": "ЖК Реал Мадрид",
114
+ "NameCom2": "ЖК Аталанта",
115
+ "Result": "2:1 (2:1)",
116
+ "CountResults": 0,
117
+ "MainResult": null,
118
+ "EventStatus": 2,
119
+ "OddsDifference": "2.9800",
120
+ "DateEvent": "2024-08-14T22:00:00",
121
+ "OddsForDisplay": "2.98",
122
+ "ID": 146816,
123
+ "HeadID": 137461,
124
+ "ParentID": 146814,
125
+ "LinesID": 856037,
126
+ "BetFlags": 67,
127
+ "Odds": 2.98,
128
+ "OddsOrig": 2.98,
129
+ "HandSize": null,
130
+ "BetVarID": 3,
131
+ "Add1": null,
132
+ "Add2": null,
133
+ "BetStatus": 1,
134
+ "AuthorOdds": 1,
135
+ "SiteOdds": 11,
136
+ "AmountIn": null,
137
+ "AmountOut": 8.2555,
138
+ "AmountItem": 0.31,
139
+ "Score": "2:1 44`",
140
+ "AuthorName": "admin",
141
+ "IsNewRecord": false,
142
+ "IsHeadsContent": false,
143
+ "LiveFlagForCalcAdditionalBets": 32
144
+ },
145
+ {
146
+ "NameBet": "П1",
147
+ "NameTurnir": "Футбол. Суперкубок УЕФА. Статистика",
148
+ "TurnirId": 2408,
149
+ "SportId": 5,
150
+ "NameCom1": "Реал Мадрид офсайды",
151
+ "NameCom2": "Аталанта офсайды",
152
+ "Result": "0:0 (0:0)",
153
+ "CountResults": 0,
154
+ "MainResult": null,
155
+ "EventStatus": 2,
156
+ "OddsDifference": "2.9800",
157
+ "DateEvent": "2024-08-14T22:00:00",
158
+ "OddsForDisplay": "2.98",
159
+ "ID": 146817,
160
+ "HeadID": 137461,
161
+ "ParentID": 146814,
162
+ "LinesID": 859490,
163
+ "BetFlags": 67,
164
+ "Odds": 2.98,
165
+ "OddsOrig": 2.98,
166
+ "HandSize": null,
167
+ "BetVarID": 1,
168
+ "Add1": null,
169
+ "Add2": null,
170
+ "BetStatus": 1,
171
+ "AuthorOdds": 1,
172
+ "SiteOdds": 11,
173
+ "AmountIn": null,
174
+ "AmountOut": 8.2555,
175
+ "AmountItem": 0.31,
176
+ "Score": "0:0 44`",
177
+ "AuthorName": "admin",
178
+ "IsNewRecord": false,
179
+ "IsHeadsContent": false,
180
+ "LiveFlagForCalcAdditionalBets": 32
181
+ },
182
+ {
183
+ "NameBet": "П1",
184
+ "NameTurnir": "Футбол. Суперкубок УЕФА. Статистика",
185
+ "TurnirId": 2408,
186
+ "SportId": 5,
187
+ "NameCom1": "Реал Мадрид удары в створ",
188
+ "NameCom2": "Аталанта удары в створ",
189
+ "Result": "0:0 (0:0)",
190
+ "CountResults": 0,
191
+ "MainResult": null,
192
+ "EventStatus": 2,
193
+ "OddsDifference": "1.4000",
194
+ "DateEvent": "2024-08-14T22:00:00",
195
+ "OddsForDisplay": "1.40",
196
+ "ID": 146818,
197
+ "HeadID": 137461,
198
+ "ParentID": 146814,
199
+ "LinesID": 859491,
200
+ "BetFlags": 67,
201
+ "Odds": 1.4,
202
+ "OddsOrig": 1.4,
203
+ "HandSize": null,
204
+ "BetVarID": 1,
205
+ "Add1": null,
206
+ "Add2": null,
207
+ "BetStatus": 1,
208
+ "AuthorOdds": 1,
209
+ "SiteOdds": 11,
210
+ "AmountIn": null,
211
+ "AmountOut": 4.2609,
212
+ "AmountItem": 0.16,
213
+ "Score": "0:0 44`",
214
+ "AuthorName": "admin",
215
+ "IsNewRecord": false,
216
+ "IsHeadsContent": false,
217
+ "LiveFlagForCalcAdditionalBets": 32
218
+ },
219
+ {
220
+ "NameBet": null,
221
+ "NameTurnir": null,
222
+ "TurnirId": 0,
223
+ "SportId": 0,
224
+ "NameCom1": "Бонус",
225
+ "NameCom2": "Кол-во",
226
+ "Result": null,
227
+ "CountResults": 0,
228
+ "MainResult": null,
229
+ "EventStatus": 0,
230
+ "OddsDifference": "1.0200",
231
+ "DateEvent": null,
232
+ "OddsForDisplay": "1.02",
233
+ "ID": 146819,
234
+ "HeadID": 137461,
235
+ "ParentID": 146814,
236
+ "LinesID": 0,
237
+ "BetFlags": 50,
238
+ "Odds": 1.02,
239
+ "OddsOrig": 1.02,
240
+ "HandSize": null,
241
+ "BetVarID": 2,
242
+ "Add1": null,
243
+ "Add2": null,
244
+ "BetStatus": 2,
245
+ "AuthorOdds": 0,
246
+ "SiteOdds": null,
247
+ "AmountIn": null,
248
+ "AmountOut": 0,
249
+ "AmountItem": 0,
250
+ "Score": "",
251
+ "AuthorName": null,
252
+ "IsNewRecord": false,
253
+ "IsHeadsContent": true,
254
+ "LiveFlagForCalcAdditionalBets": 32
255
+ }
256
+ ],
257
+ "PutBetErrors": 0,
258
+ "PercentReturnMoney": 0,
259
+ "AmaountOutPercent": 0,
260
+ "PointId": 1,
261
+ "PointGroupId": 57,
262
+ "Coef": 26.6305,
263
+ "CoefOrig": 26.6305
264
+ };
265
+ // function decomposeNumberIntoPowersOfTwo_(number: number, statuses: { [key: number]: string } = {}): { [key: number]: string } {
266
+ // try {
267
+ // if (typeof number !== 'number' || isNaN(number)) {
268
+ // throw new Error('Входное значение должно быть числом.');
269
+ // }
270
+ // let powers: number[] = [];
271
+ // let currentNumber = number;
272
+ // for (let i = 19; i >= 0; i--) {
273
+ // let power = Math.pow(2, i);
274
+ // if (power <= currentNumber) {
275
+ // powers.push(power);
276
+ // currentNumber -= power;
277
+ // }
278
+ // if (currentNumber === 0) break;
279
+ // }
280
+ // return powers.reverse().reduce((obj, item) => {
281
+ // obj[item] = statuses[item] ?? '';
282
+ // return obj;
283
+ // }, {} as { [key: number]: string });
284
+ // } catch (error) {
285
+ // console.error('Ошибка при разложении числа на степени двойки:', error);
286
+ // return {};
287
+ // }
288
+ // }
289
+ // function getStatuses_(number: number, name: 'BetHeadFlags' | 'BetStatus' | 'LiveType') {
290
+ // const data = decomposeNumberIntoPowersOfTwo(number, sts[name]);
291
+ // // console.log(data);
292
+ // return {
293
+ // [name+'Ids']: Object.keys(data),
294
+ // [name+'Names']: Object.values(data).join(', '),
295
+ // };
296
+ // }
297
+ const sts = {
298
+ "BetHeadFlags": {
299
+ "0": "None",
300
+ "1": "Single",
301
+ "2": "Multi",
302
+ "4": "System",
303
+ "8": "Reinvested",
304
+ "16": "Bonus",
305
+ "32": "Ordinary",
306
+ "64": "Live",
307
+ "96": "Combined"
308
+ },
309
+ "BetStatus": {
310
+ "0": "Undefined",
311
+ "1": "Not calculated",
312
+ "2": "Win",
313
+ "4": "Loss",
314
+ "8": "Refund",
315
+ "16": "Not calculated",
316
+ "32": "Paid out",
317
+ "64": "Office fund",
318
+ "128": "Refund (handicap/total)",
319
+ "256": "Partial refund (handicap/total)",
320
+ "512": "Partial refund and win (handicap/total)",
321
+ "1024": "Odds changed by bookmaker",
322
+ "2048": "Bet placed after match start",
323
+ "4096": "Cancelled by provider",
324
+ "8192": "Cash bonus",
325
+ "16384": "Removed via CashOut"
326
+ },
327
+ "LiveType": {
328
+ "0": "Undefined",
329
+ "1": "Prematch bet",
330
+ "2": "Inplay bet",
331
+ "3": "Combined bet"
332
+ },
333
+ };
334
+ // function convertBetslipDataDefault(asasas: any) {
335
+ // // betSlipData = cc;
336
+ // const currency = cc.CurrencyName;
337
+ // // const Winning = cc.Head.AmountOut;
338
+ // // const WinTax = Winning * 0;
339
+ // // const PossibleWin = Winning - WinTax;
340
+ // const first = cc.Content[0] || {};
341
+ // const placedAmount = (+(first.AmountIn || 0)).toFixed(2);
342
+ // const totalOdds = (+first.OddsForDisplay || 0).toFixed(4);
343
+ // const amountOut = (+(first.AmountOut || 0)).toFixed(2);
344
+ // console.log('cc.Head.BetStatus', getStatuses(cc.Head.BetStatus, 'BetStatus'));
345
+ // console.log('cc.Head.BetHeadFlags', getStatuses(cc.Head.BetHeadFlags, 'BetHeadFlags'));
346
+ // console.log('cc.Head.BetHeadFlags', getStatuses(cc.Head.LiveType, 'LiveType'));
347
+ // const forPrintData = {
348
+ // header: {
349
+ // "Point name": cc.PointName,
350
+ // "Bet date": ['---', new Date(cc.Head.DateID).toLocaleString(), '---'].join(' '),
351
+ // "Bet ID": cc.BillNumber,
352
+ // // "Type": cc.Head.LiveType === 1 ? 'Pre-match' : 'Live',
353
+ // "Type": decomposeNumberIntoPowersOfTwo(cc.Head.LiveType, sts.LiveType),
354
+ // },
355
+ // bets: [],
356
+ // footer: {
357
+ // PlacedAmount: `Placed amount: ${placedAmount} ${currency}`,
358
+ // "Total odds": `${totalOdds}`,
359
+ // PossibleWin: `Possible Win: ${amountOut} ${currency}`,
360
+ // },
361
+ // };
362
+ // const startDigit = cc.Content.length > 1 ? 1 : 0;
363
+ // let num = 1;
364
+ // for (let i = startDigit; i < cc.Content.length; i++) {
365
+ // const bet: OddsContent = cc.Content[i];
366
+ // const isBonus = bet.BetVarID === 2;
367
+ // const evDate = bet.DateEvent ? new Date(bet.DateEvent).toLocaleString() : '';
368
+ // const teams = !isBonus ? [bet.NameCom1, bet.NameCom2].join(' - ') : '';
369
+ // const tournament = !isBonus ? bet.NameTurnir : '';
370
+ // const odd = bet.OddsForDisplay;
371
+ // const item = {
372
+ // date: isBonus && bet.DateEvent === null ? `${num}) ${bet.NameCom1}` : `${num}) ${evDate}`,
373
+ // ...(tournament ? { tournament } : {}),
374
+ // ...(teams ? { teams } : {}),
375
+ // betName: isBonus ? `${bet.NameCom1}: ${odd}` : `${bet.NameBet}: ${odd}`,
376
+ // ...getStatuses(bet.BetFlags, 'BetHeadFlags'),
377
+ // ...getStatuses(bet.BetStatus, 'BetStatus'),
378
+ // // odd: bet.Coef.toFixed(2),
379
+ // // isLive: bet.IsLive ? ' Live' : '',
380
+ // // score: bet.Result || '',
381
+ // // isBonus: bet.IsBonus,
382
+ // } as never;
383
+ // forPrintData.bets.push(item);
384
+ // num++;
385
+ // }
386
+ // return forPrintData;
387
+ // }
388
+ export class Coupon {
389
+ constructor(lang = 'en') {
390
+ this.statusesDict = sts;
391
+ console.log('Coupon class');
392
+ }
393
+ decomposeNumberIntoPowersOfTwo(number, statuses = {}) {
394
+ try {
395
+ if (typeof number !== 'number' || isNaN(number)) {
396
+ throw new Error('Входное значение должно быть числом.');
397
+ }
398
+ let powers = [];
399
+ let currentNumber = number;
400
+ for (let i = 19; i >= 0; i--) {
401
+ let power = Math.pow(2, i);
402
+ if (power <= currentNumber) {
403
+ powers.push(power);
404
+ currentNumber -= power;
405
+ }
406
+ if (currentNumber === 0)
407
+ break;
408
+ }
409
+ return powers.reverse().reduce((obj, item) => {
410
+ var _a;
411
+ obj[item] = (_a = statuses[item]) !== null && _a !== void 0 ? _a : '';
412
+ return obj;
413
+ }, {});
414
+ }
415
+ catch (error) {
416
+ console.error('Ошибка при разложении числа на степени двойки:', error);
417
+ return {};
418
+ }
419
+ }
420
+ getStatuses(number, name) {
421
+ const data = this.decomposeNumberIntoPowersOfTwo(number, sts[name]);
422
+ // console.log(data);
423
+ return {
424
+ [name + 'Ids']: Object.keys(data),
425
+ [name + 'Names']: Object.values(data).join(', '),
426
+ };
427
+ }
428
+ convertBetslipDataDefault(bc) {
429
+ // betSlipData = cc;
430
+ const cc = bc !== null && bc !== void 0 ? bc : cTest;
431
+ const currency = cc.CurrencyName;
432
+ // const Winning = cc.Head.AmountOut;
433
+ // const WinTax = Winning * 0;
434
+ // const PossibleWin = Winning - WinTax;
435
+ const first = cc.Content[0] || {};
436
+ const placedAmount = (+(first.AmountIn || 0)).toFixed(2);
437
+ const totalOdds = (+first.OddsForDisplay || 0).toFixed(4);
438
+ const amountOutFloat = +cc.Head.AmountOut || 0;
439
+ const amountOut = amountOutFloat.toFixed(2);
440
+ console.log('cc.Head.BetStatus', this.getStatuses(cc.Head.BetStatus, 'BetStatus'));
441
+ console.log('cc.Head.BetHeadFlags', this.getStatuses(cc.Head.BetHeadFlags, 'BetHeadFlags'));
442
+ console.log('cc.Head.BetHeadFlags', this.getStatuses(cc.Head.LiveType, 'LiveType'));
443
+ const BetStatus = this.getStatuses(cc.Head.BetStatus, 'BetStatus');
444
+ const forPrintData = {
445
+ data: Object.assign({}, BetStatus),
446
+ header: {
447
+ "Point name": cc.PointName,
448
+ "Bet date": ['---', new Date(cc.Head.DateID).toLocaleString(), '---'].join(' '),
449
+ "Bet ID": cc.BillNumber,
450
+ "BetStatus": BetStatus.BetStatusNames,
451
+ // ...this.getStatuses(cc.Head.LiveType, 'LiveType'),
452
+ },
453
+ bets: [],
454
+ footer: {
455
+ PlacedAmount: `Placed amount: ${placedAmount} ${currency}`,
456
+ "Total odds": `${totalOdds}`,
457
+ // PossibleWin: `Possible Win: ${amountOut} ${currency}`,
458
+ Win: `Win: ${amountOut} ${currency}`,
459
+ // ...(amountOutFloat ? { "Win:": amountOutFloat } : {}),
460
+ },
461
+ };
462
+ const startDigit = cc.Content.length > 1 ? 1 : 0;
463
+ let num = 1;
464
+ for (let i = startDigit; i < cc.Content.length; i++) {
465
+ const bet = cc.Content[i];
466
+ const isBonus = bet.BetVarID === 2;
467
+ const evDate = bet.DateEvent ? new Date(bet.DateEvent).toLocaleString() : '';
468
+ const teams = !isBonus ? [bet.NameCom1, bet.NameCom2].join(' - ') : '';
469
+ const tournament = !isBonus ? bet.NameTurnir : '';
470
+ const odd = bet.OddsForDisplay;
471
+ const betStatusNames = this.getStatuses(bet.BetStatus, 'BetStatus').BetStatusNames;
472
+ const item = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ date: isBonus && bet.DateEvent === null ? `${num}) ${bet.NameCom1}` : `${num}) ${evDate}` }, (tournament ? { tournament } : {})), (teams ? { teams } : {})), { betName: isBonus ? `${bet.NameCom1}: ${odd}` : `${bet.NameBet}: ${odd}` }), (bet.Result ? { result: bet.Result } : {})), { betStatusNames });
473
+ forPrintData.bets.push(item);
474
+ num++;
475
+ }
476
+ const text = [
477
+ Object.values(forPrintData.header).join('\n'),
478
+ forPrintData.bets.map((item) => Object.values(item).join('\n')).join('\n----------------\n'),
479
+ Object.values(forPrintData.footer).join('\n'),
480
+ ].join('\n====================\n');
481
+ return Object.assign(Object.assign({}, forPrintData), { text });
482
+ }
483
+ }
484
+ ;
485
+ // const cc = new Coupon();
486
+ // console.log(cc.convertBetslipDataDefault(cTest));
487
+ /*
488
+
489
+ node --no-warnings --loader ts-node/esm ./src/coupon.ts
490
+
491
+ */
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, resolve } from 'path';
4
+ // Получаем текущую директорию в ESM
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ // Читаем package.json
8
+ const packageJsonPath = resolve(__dirname, '..', 'package.json');
9
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
10
+ const { name, version } = packageJson;
11
+ const versionJson = JSON.stringify({ name, version }, null, 2);
12
+ const outputPath = resolve(__dirname, 'version.json');
13
+ writeFileSync(outputPath, versionJson, 'utf8');
14
+ console.log(`Version: ${version}`);