black-diamond-shared 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs ADDED
@@ -0,0 +1,604 @@
1
+ // src/data/league/schema/index.ts
2
+ import { Schema } from "mongoose";
3
+ var leagueSchema = new Schema(
4
+ {
5
+ id: {
6
+ type: Number,
7
+ required: true
8
+ },
9
+ name: {
10
+ type: String
11
+ },
12
+ logo: {
13
+ type: String
14
+ },
15
+ country: {
16
+ name: {
17
+ type: String
18
+ },
19
+ code: {
20
+ type: String
21
+ },
22
+ flag: {
23
+ type: String
24
+ }
25
+ },
26
+ stats: {
27
+ type: Schema.Types.Mixed
28
+ },
29
+ currentSeason: {
30
+ type: Number
31
+ }
32
+ },
33
+ { timestamps: true }
34
+ );
35
+
36
+ // src/data/league/data/index.ts
37
+ var LEAGUE_ID_LIST = [
38
+ 39,
39
+ // premier league
40
+ 78,
41
+ //Bundesliga 1
42
+ 140,
43
+ // La Liga
44
+ 135,
45
+ // Serie A
46
+ 61,
47
+ // Ligue 1,
48
+ 188,
49
+ // A league australia
50
+ 40,
51
+ // Championship
52
+ 41,
53
+ // League One
54
+ 42,
55
+ // League Two
56
+ 43,
57
+ //National League
58
+ 141,
59
+ // Segunda Division
60
+ 79,
61
+ //Bundesliga 2
62
+ 136,
63
+ // Serie B
64
+ 62,
65
+ // Ligue 2
66
+ 179,
67
+ // Scotland Premiership
68
+ 180,
69
+ // Scotland Championship,
70
+ 113,
71
+ // Sweden Allsvenskan
72
+ 103,
73
+ // Norway Eliteserien
74
+ 94,
75
+ // Primeira Liga portugal
76
+ 71,
77
+ // Serie A Brazil
78
+ 72,
79
+ // Serie B Brazil
80
+ 253,
81
+ // Major League Soccer
82
+ 197,
83
+ // Greece Super League
84
+ 88,
85
+ // Eredivisie Holland
86
+ 144,
87
+ // Belgium 1st div A
88
+ 345,
89
+ // Czech Liga
90
+ 207,
91
+ // Switz super league
92
+ 98,
93
+ // J1 League Japan
94
+ 292,
95
+ // K League 1
96
+ 333,
97
+ // Ukraine premier league
98
+ 128,
99
+ // Argentine Primera División
100
+ 169,
101
+ // China super league
102
+ 233,
103
+ // Egypt premier leaguye
104
+ 262,
105
+ // Liga MX Mexico
106
+ 244,
107
+ // Veikkausliiga finland
108
+ 164,
109
+ // Iceland
110
+ 281,
111
+ // Peru Primera División
112
+ 203,
113
+ // Turkey Süper Lig
114
+ 365,
115
+ // Virsliga Latvia
116
+ 357
117
+ // Ireland Premier division
118
+ ];
119
+
120
+ // src/data/team/schema/index.ts
121
+ import { Schema as Schema2 } from "mongoose";
122
+ var teamSchema = new Schema2(
123
+ {
124
+ id: {
125
+ type: Number,
126
+ required: true
127
+ },
128
+ name: {
129
+ type: String,
130
+ required: true
131
+ },
132
+ logo: {
133
+ type: String,
134
+ required: true
135
+ },
136
+ league: {
137
+ type: Schema2.Types.ObjectId,
138
+ ref: "League"
139
+ },
140
+ stats: {
141
+ type: Schema2.Types.ObjectId,
142
+ ref: "TeamStat"
143
+ },
144
+ currentSeason: {
145
+ type: Number
146
+ },
147
+ fixtures: [
148
+ {
149
+ type: Schema2.Types.ObjectId,
150
+ ref: "Fixture"
151
+ }
152
+ ]
153
+ },
154
+ { timestamps: true }
155
+ );
156
+
157
+ // src/data/fixture/schema/index.ts
158
+ import { Schema as Schema3 } from "mongoose";
159
+ var fixtureSchema = new Schema3(
160
+ {
161
+ fixture: {
162
+ type: Schema3.Types.Mixed
163
+ },
164
+ league: {
165
+ type: Schema3.Types.Mixed
166
+ },
167
+ teams: {
168
+ type: Schema3.Types.Mixed
169
+ },
170
+ goals: {
171
+ type: Schema3.Types.Mixed
172
+ },
173
+ score: {
174
+ type: Schema3.Types.Mixed
175
+ },
176
+ odds: {
177
+ type: Schema3.Types.Mixed
178
+ },
179
+ apiPredictions: {
180
+ type: Schema3.Types.Mixed
181
+ },
182
+ teamStats: {
183
+ type: Schema3.Types.Mixed
184
+ }
185
+ // refs: {
186
+ // refHomeTeamStat: {
187
+ // type: Schema.Types.ObjectId,
188
+ // ref: "Stat",
189
+ // },
190
+ // refAwayTeamStat: {
191
+ // type: Schema.Types.ObjectId,
192
+ // ref: "Stat",
193
+ // },
194
+ // refHomeTeam: {
195
+ // type: Schema.Types.ObjectId,
196
+ // ref: "Team",
197
+ // },
198
+ // refAwayTeam: {
199
+ // type: Schema.Types.ObjectId,
200
+ // ref: "Team",
201
+ // },
202
+ // },
203
+ // odds: {
204
+ // type: Schema.Types.Mixed,
205
+ // },
206
+ // prevFixtures: {
207
+ // home: [
208
+ // {
209
+ // type: Schema.Types.ObjectId,
210
+ // ref: "Fixture",
211
+ // },
212
+ // ],
213
+ // away: [
214
+ // {
215
+ // type: Schema.Types.ObjectId,
216
+ // ref: "Fixture",
217
+ // },
218
+ // ],
219
+ // },
220
+ // apiPredictions: {
221
+ // type: Schema.Types.Mixed,
222
+ // },
223
+ // predictions: {
224
+ // type: Schema.Types.Mixed,
225
+ // },
226
+ // topBets: {
227
+ // type: Schema.Types.Mixed,
228
+ // },
229
+ // keyStats: {
230
+ // type: Schema.Types.Mixed,
231
+ // },
232
+ // info: {
233
+ // type: Schema.Types.Mixed,
234
+ // },
235
+ },
236
+ { timestamps: true }
237
+ );
238
+
239
+ // src/data/teamStat/schema/index.ts
240
+ import { Schema as Schema4 } from "mongoose";
241
+ var teamStatSchema = new Schema4(
242
+ {
243
+ leaguePosition: { type: Number },
244
+ team: {
245
+ id: { type: Number, required: true },
246
+ name: { type: String, required: true },
247
+ logo: { type: String, required: true }
248
+ },
249
+ biggest: {
250
+ streak: {
251
+ wins: { type: Number },
252
+ draws: { type: Number },
253
+ loses: { type: Number }
254
+ },
255
+ wins: {
256
+ home: { type: String },
257
+ away: { type: String }
258
+ },
259
+ loses: {
260
+ home: { type: String },
261
+ away: { type: String }
262
+ },
263
+ goals: {
264
+ for: {
265
+ home: { type: Number },
266
+ away: { type: Number }
267
+ },
268
+ against: {
269
+ home: { type: Number },
270
+ away: { type: Number }
271
+ }
272
+ }
273
+ },
274
+ cards: {
275
+ yellow: {
276
+ "0-15": {
277
+ total: { type: Number },
278
+ percentage: { type: String }
279
+ },
280
+ "16-30": {
281
+ total: { type: Number },
282
+ percentage: { type: String }
283
+ },
284
+ "31-45": {
285
+ total: { type: Number },
286
+ percentage: { type: String }
287
+ },
288
+ "46-60": {
289
+ total: { type: Number },
290
+ percentage: { type: String }
291
+ },
292
+ "61-75": {
293
+ total: { type: Number },
294
+ percentage: { type: String }
295
+ },
296
+ "76-90": {
297
+ total: { type: Number },
298
+ percentage: { type: String }
299
+ },
300
+ "91-105": {
301
+ total: { type: Number },
302
+ percentage: { type: String }
303
+ },
304
+ "106-120": {
305
+ total: { type: Number },
306
+ percentage: { type: String }
307
+ }
308
+ },
309
+ red: {
310
+ "0-15": {
311
+ total: { type: Number },
312
+ percentage: { type: String }
313
+ },
314
+ "16-30": {
315
+ total: { type: Number },
316
+ percentage: { type: String }
317
+ },
318
+ "31-45": {
319
+ total: { type: Number },
320
+ percentage: { type: String }
321
+ },
322
+ "46-60": {
323
+ total: { type: Number },
324
+ percentage: { type: String }
325
+ },
326
+ "61-75": {
327
+ total: { type: Number },
328
+ percentage: { type: String }
329
+ },
330
+ "76-90": {
331
+ total: { type: Number },
332
+ percentage: { type: String }
333
+ },
334
+ "91-105": {
335
+ total: { type: Number },
336
+ percentage: { type: String }
337
+ },
338
+ "106-120": {
339
+ total: { type: Number },
340
+ percentage: { type: String }
341
+ }
342
+ }
343
+ },
344
+ clean_sheet: {
345
+ home: { type: Number },
346
+ away: { type: Number },
347
+ total: { type: Number }
348
+ },
349
+ createdAt: { type: Date, default: Date.now },
350
+ failed_to_score: {
351
+ home: { type: Number },
352
+ away: { type: Number },
353
+ total: { type: Number }
354
+ },
355
+ fixtures: {
356
+ played: {
357
+ home: { type: Number },
358
+ away: { type: Number },
359
+ total: { type: Number }
360
+ },
361
+ wins: {
362
+ home: { type: Number },
363
+ away: { type: Number },
364
+ total: { type: Number }
365
+ },
366
+ draws: {
367
+ home: { type: Number },
368
+ away: { type: Number },
369
+ total: { type: Number }
370
+ },
371
+ loses: {
372
+ home: { type: Number },
373
+ away: { type: Number },
374
+ total: { type: Number }
375
+ }
376
+ },
377
+ form: { type: String },
378
+ goals: {
379
+ for: {
380
+ total: {
381
+ home: { type: Number },
382
+ away: { type: Number },
383
+ total: { type: Number }
384
+ },
385
+ average: {
386
+ home: { type: String },
387
+ away: { type: String },
388
+ total: { type: String }
389
+ },
390
+ minute: {
391
+ "0-15": {
392
+ total: { type: Number },
393
+ percentage: { type: String }
394
+ },
395
+ "16-30": {
396
+ total: { type: Number },
397
+ percentage: { type: String }
398
+ },
399
+ "31-45": {
400
+ total: { type: Number },
401
+ percentage: { type: String }
402
+ },
403
+ "46-60": {
404
+ total: { type: Number },
405
+ percentage: { type: String }
406
+ },
407
+ "61-75": {
408
+ total: { type: Number },
409
+ percentage: { type: String }
410
+ },
411
+ "76-90": {
412
+ total: { type: Number },
413
+ percentage: { type: String }
414
+ },
415
+ "91-105": {
416
+ total: { type: Number },
417
+ percentage: { type: String }
418
+ },
419
+ "106-120": {
420
+ total: { type: Number },
421
+ percentage: { type: String }
422
+ }
423
+ },
424
+ under_over: {
425
+ "0.5": {
426
+ over: { type: Number },
427
+ under: { type: Number }
428
+ },
429
+ "1.5": {
430
+ over: { type: Number },
431
+ under: { type: Number }
432
+ },
433
+ "2.5": {
434
+ over: { type: Number },
435
+ under: { type: Number }
436
+ },
437
+ "3.5": {
438
+ over: { type: Number },
439
+ under: { type: Number }
440
+ },
441
+ "4.5": {
442
+ over: { type: Number },
443
+ under: { type: Number }
444
+ }
445
+ }
446
+ },
447
+ against: {
448
+ total: {
449
+ home: { type: Number },
450
+ away: { type: Number },
451
+ total: { type: Number }
452
+ },
453
+ average: {
454
+ home: { type: String },
455
+ away: { type: String },
456
+ total: { type: String }
457
+ },
458
+ minute: {
459
+ "0-15": {
460
+ total: { type: Number },
461
+ percentage: { type: String }
462
+ },
463
+ "16-30": {
464
+ total: { type: Number },
465
+ percentage: { type: String }
466
+ },
467
+ "31-45": {
468
+ total: { type: Number },
469
+ percentage: { type: String }
470
+ },
471
+ "46-60": {
472
+ total: { type: Number },
473
+ percentage: { type: String }
474
+ },
475
+ "61-75": {
476
+ total: { type: Number },
477
+ percentage: { type: String }
478
+ },
479
+ "76-90": {
480
+ total: { type: Number },
481
+ percentage: { type: String }
482
+ },
483
+ "91-105": {
484
+ total: { type: Number },
485
+ percentage: { type: String }
486
+ },
487
+ "106-120": {
488
+ total: { type: Number },
489
+ percentage: { type: String }
490
+ }
491
+ },
492
+ under_over: {
493
+ "0.5": {
494
+ over: { type: Number },
495
+ under: { type: Number }
496
+ },
497
+ "1.5": {
498
+ over: { type: Number },
499
+ under: { type: Number }
500
+ },
501
+ "2.5": {
502
+ over: { type: Number },
503
+ under: { type: Number }
504
+ },
505
+ "3.5": {
506
+ over: { type: Number },
507
+ under: { type: Number }
508
+ },
509
+ "4.5": {
510
+ over: { type: Number },
511
+ under: { type: Number }
512
+ }
513
+ }
514
+ }
515
+ },
516
+ league: {
517
+ id: { type: Number, required: true },
518
+ name: { type: String, required: true },
519
+ country: { type: String, required: true },
520
+ logo: { type: String, required: true },
521
+ flag: { type: String, required: true },
522
+ season: { type: Number, required: true }
523
+ },
524
+ lineups: [
525
+ {
526
+ formation: { type: String },
527
+ played: { type: Number }
528
+ }
529
+ ],
530
+ penalty: {
531
+ scored: {
532
+ total: { type: Number },
533
+ percentage: { type: String }
534
+ },
535
+ missed: {
536
+ total: { type: Number },
537
+ percentage: { type: String }
538
+ },
539
+ total: { type: Number }
540
+ }
541
+ },
542
+ { timestamps: true }
543
+ );
544
+
545
+ // src/utils/apiFootball/data/index.ts
546
+ var API_FOOTBALL_URL = `https://v3.football.api-sports.io`;
547
+ var API_FOOTBALL_URL_LEAGUES = `${API_FOOTBALL_URL}/leagues`;
548
+ var API_FOOTBALL_URL_TEAMS = `${API_FOOTBALL_URL}/teams`;
549
+ var API_FOOTBALL_URL_FIXTURES = `${API_FOOTBALL_URL}/fixtures`;
550
+ var API_FOOTBALL_URL_TEAM_STATS = `${API_FOOTBALL_URL}/teams/statistics`;
551
+ var API_FOOTBALL_URL_ODDS = `${API_FOOTBALL_URL}/odds`;
552
+ var API_FOOTBALL_URL_STANDINGS = `${API_FOOTBALL_URL}/standings`;
553
+ var API_FOOTBALL_URL_PREDICTIONS = `${API_FOOTBALL_URL}/predictions`;
554
+
555
+ // src/utils/numbers/toTwoDecimalPlaces.ts
556
+ function toTwoDecimalPlaces(num) {
557
+ return parseFloat(num.toFixed(2));
558
+ }
559
+
560
+ // src/utils/numbers/toPercent.ts
561
+ function toPercent(value, total) {
562
+ if (total === 0) {
563
+ return 0;
564
+ }
565
+ return value * 100 / total;
566
+ }
567
+
568
+ // src/utils/numbers/getMeanModeMedian.ts
569
+ var getMeanModeMedian = (numbers) => {
570
+ if (numbers.length === 0) return { mean: 0, median: 0, mode: 0 };
571
+ const mean = numbers.reduce((acc, val) => acc + val, 0) / numbers.length;
572
+ const sortedNumbers = [...numbers].sort((a, b) => a - b);
573
+ const mid = Math.floor(sortedNumbers.length / 2);
574
+ const median = sortedNumbers.length % 2 !== 0 ? sortedNumbers[mid] : (sortedNumbers[mid - 1] + sortedNumbers[mid]) / 2;
575
+ const frequency = {};
576
+ let maxFreq = 0;
577
+ let mode = numbers[0];
578
+ numbers.forEach((num) => {
579
+ frequency[num] = (frequency[num] || 0) + 1;
580
+ if (frequency[num] > maxFreq) {
581
+ maxFreq = frequency[num];
582
+ mode = num;
583
+ }
584
+ });
585
+ return { mean, median, mode };
586
+ };
587
+ export {
588
+ API_FOOTBALL_URL_FIXTURES,
589
+ API_FOOTBALL_URL_LEAGUES,
590
+ API_FOOTBALL_URL_ODDS,
591
+ API_FOOTBALL_URL_PREDICTIONS,
592
+ API_FOOTBALL_URL_STANDINGS,
593
+ API_FOOTBALL_URL_TEAMS,
594
+ API_FOOTBALL_URL_TEAM_STATS,
595
+ LEAGUE_ID_LIST,
596
+ fixtureSchema,
597
+ getMeanModeMedian,
598
+ leagueSchema,
599
+ teamSchema,
600
+ teamStatSchema,
601
+ toPercent,
602
+ toTwoDecimalPlaces
603
+ };
604
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/league/schema/index.ts","../src/data/league/data/index.ts","../src/data/team/schema/index.ts","../src/data/fixture/schema/index.ts","../src/data/teamStat/schema/index.ts","../src/utils/apiFootball/data/index.ts","../src/utils/numbers/toTwoDecimalPlaces.ts","../src/utils/numbers/toPercent.ts","../src/utils/numbers/getMeanModeMedian.ts"],"sourcesContent":["import { League } from \"../types\";\nimport { Schema } from \"mongoose\";\n\nexport const leagueSchema = new Schema<League>(\n {\n id: {\n type: Number,\n required: true,\n },\n name: {\n type: String,\n },\n logo: {\n type: String,\n },\n country: {\n name: {\n type: String,\n },\n code: {\n type: String,\n },\n flag: {\n type: String,\n },\n },\n stats: {\n type: Schema.Types.Mixed,\n },\n currentSeason: {\n type: Number,\n },\n },\n { timestamps: true }\n);\n","export const LEAGUE_ID_LIST = [\n 39, // premier league\n 78, //Bundesliga 1\n 140, // La Liga\n 135, // Serie A\n 61, // Ligue 1,\n 188, // A league australia\n 40, // Championship\n 41, // League One\n 42, // League Two\n 43, //National League\n 141, // Segunda Division\n 79, //Bundesliga 2\n 136, // Serie B\n 62, // Ligue 2\n 179, // Scotland Premiership\n 180, // Scotland Championship,\n 113, // Sweden Allsvenskan\n 103, // Norway Eliteserien\n 94, // Primeira Liga portugal\n 71, // Serie A Brazil\n 72, // Serie B Brazil\n 253, // Major League Soccer\n 197, // Greece Super League\n 88, // Eredivisie Holland\n 144, // Belgium 1st div A\n 345, // Czech Liga\n 207, // Switz super league\n 98, // J1 League Japan\n 292, // K League 1\n 333, // Ukraine premier league\n 128, // Argentine Primera División\n 169, // China super league\n 233, // Egypt premier leaguye\n 262, // Liga MX Mexico\n 244, // Veikkausliiga finland\n 164, // Iceland\n 281, // Peru Primera División\n 203, // Turkey Süper Lig\n 365, // Virsliga Latvia\n 357, // Ireland Premier division\n];\n","import { Schema } from \"mongoose\";\n\nexport const teamSchema = new Schema(\n {\n id: {\n type: Number,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n logo: {\n type: String,\n required: true,\n },\n league: {\n type: Schema.Types.ObjectId,\n ref: \"League\",\n },\n stats: {\n type: Schema.Types.ObjectId,\n ref: \"TeamStat\",\n },\n currentSeason: {\n type: Number,\n },\n fixtures: [\n {\n type: Schema.Types.ObjectId,\n ref: \"Fixture\",\n },\n ],\n },\n { timestamps: true }\n);\n","import { Schema } from \"mongoose\";\n\nexport const fixtureSchema = new Schema(\n {\n fixture: {\n type: Schema.Types.Mixed,\n },\n league: {\n type: Schema.Types.Mixed,\n },\n teams: {\n type: Schema.Types.Mixed,\n },\n goals: {\n type: Schema.Types.Mixed,\n },\n score: {\n type: Schema.Types.Mixed,\n },\n odds: {\n type: Schema.Types.Mixed,\n },\n apiPredictions: {\n type: Schema.Types.Mixed,\n },\n teamStats: {\n type: Schema.Types.Mixed,\n },\n // refs: {\n // refHomeTeamStat: {\n // type: Schema.Types.ObjectId,\n // ref: \"Stat\",\n // },\n // refAwayTeamStat: {\n // type: Schema.Types.ObjectId,\n // ref: \"Stat\",\n // },\n // refHomeTeam: {\n // type: Schema.Types.ObjectId,\n // ref: \"Team\",\n // },\n // refAwayTeam: {\n // type: Schema.Types.ObjectId,\n // ref: \"Team\",\n // },\n // },\n // odds: {\n // type: Schema.Types.Mixed,\n // },\n // prevFixtures: {\n // home: [\n // {\n // type: Schema.Types.ObjectId,\n // ref: \"Fixture\",\n // },\n // ],\n // away: [\n // {\n // type: Schema.Types.ObjectId,\n // ref: \"Fixture\",\n // },\n // ],\n // },\n // apiPredictions: {\n // type: Schema.Types.Mixed,\n // },\n // predictions: {\n // type: Schema.Types.Mixed,\n // },\n // topBets: {\n // type: Schema.Types.Mixed,\n // },\n // keyStats: {\n // type: Schema.Types.Mixed,\n // },\n // info: {\n // type: Schema.Types.Mixed,\n // },\n },\n { timestamps: true }\n);\n","import { Schema } from \"mongoose\";\n\nexport const teamStatSchema = new Schema(\n {\n leaguePosition: { type: Number },\n team: {\n id: { type: Number, required: true },\n name: { type: String, required: true },\n logo: { type: String, required: true },\n },\n biggest: {\n streak: {\n wins: { type: Number },\n draws: { type: Number },\n loses: { type: Number },\n },\n wins: {\n home: { type: String },\n away: { type: String },\n },\n loses: {\n home: { type: String },\n away: { type: String },\n },\n goals: {\n for: {\n home: { type: Number },\n away: { type: Number },\n },\n against: {\n home: { type: Number },\n away: { type: Number },\n },\n },\n },\n cards: {\n yellow: {\n \"0-15\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"16-30\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"31-45\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"46-60\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"61-75\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"76-90\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"91-105\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"106-120\": {\n total: { type: Number },\n percentage: { type: String },\n },\n },\n red: {\n \"0-15\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"16-30\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"31-45\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"46-60\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"61-75\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"76-90\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"91-105\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"106-120\": {\n total: { type: Number },\n percentage: { type: String },\n },\n },\n },\n clean_sheet: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n createdAt: { type: Date, default: Date.now },\n failed_to_score: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n fixtures: {\n played: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n wins: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n draws: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n loses: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n },\n form: { type: String },\n goals: {\n for: {\n total: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n average: {\n home: { type: String },\n away: { type: String },\n total: { type: String },\n },\n minute: {\n \"0-15\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"16-30\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"31-45\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"46-60\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"61-75\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"76-90\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"91-105\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"106-120\": {\n total: { type: Number },\n percentage: { type: String },\n },\n },\n under_over: {\n \"0.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"1.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"2.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"3.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"4.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n },\n },\n against: {\n total: {\n home: { type: Number },\n away: { type: Number },\n total: { type: Number },\n },\n average: {\n home: { type: String },\n away: { type: String },\n total: { type: String },\n },\n minute: {\n \"0-15\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"16-30\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"31-45\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"46-60\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"61-75\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"76-90\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"91-105\": {\n total: { type: Number },\n percentage: { type: String },\n },\n \"106-120\": {\n total: { type: Number },\n percentage: { type: String },\n },\n },\n under_over: {\n \"0.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"1.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"2.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"3.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n \"4.5\": {\n over: { type: Number },\n under: { type: Number },\n },\n },\n },\n },\n league: {\n id: { type: Number, required: true },\n name: { type: String, required: true },\n country: { type: String, required: true },\n logo: { type: String, required: true },\n flag: { type: String, required: true },\n season: { type: Number, required: true },\n },\n lineups: [\n {\n formation: { type: String },\n played: { type: Number },\n },\n ],\n penalty: {\n scored: {\n total: { type: Number },\n percentage: { type: String },\n },\n missed: {\n total: { type: Number },\n percentage: { type: String },\n },\n total: { type: Number },\n },\n },\n { timestamps: true }\n);\n","const API_FOOTBALL_URL = `https://v3.football.api-sports.io`;\nexport const API_FOOTBALL_URL_LEAGUES = `${API_FOOTBALL_URL}/leagues`;\nexport const API_FOOTBALL_URL_TEAMS = `${API_FOOTBALL_URL}/teams`;\nexport const API_FOOTBALL_URL_FIXTURES = `${API_FOOTBALL_URL}/fixtures`;\nexport const API_FOOTBALL_URL_TEAM_STATS = `${API_FOOTBALL_URL}/teams/statistics`;\nexport const API_FOOTBALL_URL_ODDS = `${API_FOOTBALL_URL}/odds`;\nexport const API_FOOTBALL_URL_STANDINGS = `${API_FOOTBALL_URL}/standings`;\nexport const API_FOOTBALL_URL_PREDICTIONS = `${API_FOOTBALL_URL}/predictions`;\n","export function toTwoDecimalPlaces(num: number): number {\n return parseFloat(num.toFixed(2));\n}\n","export function toPercent(value: number, total: number): number {\n if (total === 0) {\n return 0;\n }\n return (value * 100) / total;\n}\n","// The four averages are the mean, median, mode, and range.\n// The mean is what you typically think as the average - found by summing all values and dividing the sum by the number of values.\n// The median is the middle value of the set (or the average of the two middle values if the set is even).\n// The mode is the piece of data that occurs the most\n// The range is the difference between the highest and lowest values.\n\nexport const getMeanModeMedian = (numbers: number[]) => {\n if (numbers.length === 0) return { mean: 0, median: 0, mode: 0 };\n\n // Mean\n const mean = numbers.reduce((acc, val) => acc + val, 0) / numbers.length;\n\n // Median\n const sortedNumbers = [...numbers].sort((a, b) => a - b);\n const mid = Math.floor(sortedNumbers.length / 2);\n const median =\n sortedNumbers.length % 2 !== 0\n ? sortedNumbers[mid]\n : (sortedNumbers[mid - 1] + sortedNumbers[mid]) / 2;\n\n // Mode\n const frequency: { [key: number]: number } = {};\n let maxFreq = 0;\n let mode = numbers[0];\n\n numbers.forEach((num) => {\n frequency[num] = (frequency[num] || 0) + 1;\n if (frequency[num] > maxFreq) {\n maxFreq = frequency[num];\n mode = num;\n }\n });\n\n return { mean, median, mode };\n};\n"],"mappings":";AACA,SAAS,cAAc;AAEhB,IAAM,eAAe,IAAI;AAAA,EAC9B;AAAA,IACE,IAAI;AAAA,MACF,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,MAAM,OAAO,MAAM;AAAA,IACrB;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,EAAE,YAAY,KAAK;AACrB;;;AClCO,IAAM,iBAAiB;AAAA,EAC5B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACF;;;ACzCA,SAAS,UAAAA,eAAc;AAEhB,IAAM,aAAa,IAAIA;AAAA,EAC5B;AAAA,IACE,IAAI;AAAA,MACF,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAMA,QAAO,MAAM;AAAA,MACnB,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,MAAMA,QAAO,MAAM;AAAA,MACnB,KAAK;AAAA,IACP;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,IACR;AAAA,IACA,UAAU;AAAA,MACR;AAAA,QACE,MAAMA,QAAO,MAAM;AAAA,QACnB,KAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EACA,EAAE,YAAY,KAAK;AACrB;;;ACnCA,SAAS,UAAAC,eAAc;AAEhB,IAAM,gBAAgB,IAAIA;AAAA,EAC/B;AAAA,IACE,SAAS;AAAA,MACP,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,QAAQ;AAAA,MACN,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,MACL,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,MACL,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,OAAO;AAAA,MACL,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,MAAM;AAAA,MACJ,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,gBAAgB;AAAA,MACd,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA,IACA,WAAW;AAAA,MACT,MAAMA,QAAO,MAAM;AAAA,IACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmDF;AAAA,EACA,EAAE,YAAY,KAAK;AACrB;;;AChFA,SAAS,UAAAC,eAAc;AAEhB,IAAM,iBAAiB,IAAIA;AAAA,EAChC;AAAA,IACE,gBAAgB,EAAE,MAAM,OAAO;AAAA,IAC/B,MAAM;AAAA,MACJ,IAAI,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACnC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACrC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,IACvC;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,OAAO,EAAE,MAAM,OAAO;AAAA,QACtB,OAAO,EAAE,MAAM,OAAO;AAAA,MACxB;AAAA,MACA,MAAM;AAAA,QACJ,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,MACvB;AAAA,MACA,OAAO;AAAA,QACL,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,MACvB;AAAA,MACA,OAAO;AAAA,QACL,KAAK;AAAA,UACH,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACvB;AAAA,QACA,SAAS;AAAA,UACP,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,QAAQ;AAAA,UACN,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,UAAU;AAAA,UACR,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,WAAW;AAAA,UACT,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,KAAK;AAAA,QACH,QAAQ;AAAA,UACN,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,SAAS;AAAA,UACP,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,UAAU;AAAA,UACR,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,QACA,WAAW;AAAA,UACT,OAAO,EAAE,MAAM,OAAO;AAAA,UACtB,YAAY,EAAE,MAAM,OAAO;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,MAAM,EAAE,MAAM,OAAO;AAAA,MACrB,MAAM,EAAE,MAAM,OAAO;AAAA,MACrB,OAAO,EAAE,MAAM,OAAO;AAAA,IACxB;AAAA,IACA,WAAW,EAAE,MAAM,MAAM,SAAS,KAAK,IAAI;AAAA,IAC3C,iBAAiB;AAAA,MACf,MAAM,EAAE,MAAM,OAAO;AAAA,MACrB,MAAM,EAAE,MAAM,OAAO;AAAA,MACrB,OAAO,EAAE,MAAM,OAAO;AAAA,IACxB;AAAA,IACA,UAAU;AAAA,MACR,QAAQ;AAAA,QACN,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,OAAO,EAAE,MAAM,OAAO;AAAA,MACxB;AAAA,MACA,MAAM;AAAA,QACJ,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,OAAO,EAAE,MAAM,OAAO;AAAA,MACxB;AAAA,MACA,OAAO;AAAA,QACL,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,OAAO,EAAE,MAAM,OAAO;AAAA,MACxB;AAAA,MACA,OAAO;AAAA,QACL,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,MAAM,EAAE,MAAM,OAAO;AAAA,QACrB,OAAO,EAAE,MAAM,OAAO;AAAA,MACxB;AAAA,IACF;AAAA,IACA,MAAM,EAAE,MAAM,OAAO;AAAA,IACrB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,OAAO;AAAA,UACL,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,OAAO,EAAE,MAAM,OAAO;AAAA,QACxB;AAAA,QACA,SAAS;AAAA,UACP,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,OAAO,EAAE,MAAM,OAAO;AAAA,QACxB;AAAA,QACA,QAAQ;AAAA,UACN,QAAQ;AAAA,YACN,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,UAAU;AAAA,YACR,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,WAAW;AAAA,YACT,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,OAAO;AAAA,UACL,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,OAAO,EAAE,MAAM,OAAO;AAAA,QACxB;AAAA,QACA,SAAS;AAAA,UACP,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,MAAM,EAAE,MAAM,OAAO;AAAA,UACrB,OAAO,EAAE,MAAM,OAAO;AAAA,QACxB;AAAA,QACA,QAAQ;AAAA,UACN,QAAQ;AAAA,YACN,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,SAAS;AAAA,YACP,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,UAAU;AAAA,YACR,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,UACA,WAAW;AAAA,YACT,OAAO,EAAE,MAAM,OAAO;AAAA,YACtB,YAAY,EAAE,MAAM,OAAO;AAAA,UAC7B;AAAA,QACF;AAAA,QACA,YAAY;AAAA,UACV,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,UACA,OAAO;AAAA,YACL,MAAM,EAAE,MAAM,OAAO;AAAA,YACrB,OAAO,EAAE,MAAM,OAAO;AAAA,UACxB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,IAAI,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACnC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACrC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACxC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACrC,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,MACrC,QAAQ,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,IACzC;AAAA,IACA,SAAS;AAAA,MACP;AAAA,QACE,WAAW,EAAE,MAAM,OAAO;AAAA,QAC1B,QAAQ,EAAE,MAAM,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,OAAO,EAAE,MAAM,OAAO;AAAA,QACtB,YAAY,EAAE,MAAM,OAAO;AAAA,MAC7B;AAAA,MACA,QAAQ;AAAA,QACN,OAAO,EAAE,MAAM,OAAO;AAAA,QACtB,YAAY,EAAE,MAAM,OAAO;AAAA,MAC7B;AAAA,MACA,OAAO,EAAE,MAAM,OAAO;AAAA,IACxB;AAAA,EACF;AAAA,EACA,EAAE,YAAY,KAAK;AACrB;;;AChTA,IAAM,mBAAmB;AAClB,IAAM,2BAA2B,GAAG,gBAAgB;AACpD,IAAM,yBAAyB,GAAG,gBAAgB;AAClD,IAAM,4BAA4B,GAAG,gBAAgB;AACrD,IAAM,8BAA8B,GAAG,gBAAgB;AACvD,IAAM,wBAAwB,GAAG,gBAAgB;AACjD,IAAM,6BAA6B,GAAG,gBAAgB;AACtD,IAAM,+BAA+B,GAAG,gBAAgB;;;ACPxD,SAAS,mBAAmB,KAAqB;AACtD,SAAO,WAAW,IAAI,QAAQ,CAAC,CAAC;AAClC;;;ACFO,SAAS,UAAU,OAAe,OAAuB;AAC9D,MAAI,UAAU,GAAG;AACf,WAAO;AAAA,EACT;AACA,SAAQ,QAAQ,MAAO;AACzB;;;ACCO,IAAM,oBAAoB,CAAC,YAAsB;AACtD,MAAI,QAAQ,WAAW,EAAG,QAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE;AAG/D,QAAM,OAAO,QAAQ,OAAO,CAAC,KAAK,QAAQ,MAAM,KAAK,CAAC,IAAI,QAAQ;AAGlE,QAAM,gBAAgB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACvD,QAAM,MAAM,KAAK,MAAM,cAAc,SAAS,CAAC;AAC/C,QAAM,SACJ,cAAc,SAAS,MAAM,IACzB,cAAc,GAAG,KAChB,cAAc,MAAM,CAAC,IAAI,cAAc,GAAG,KAAK;AAGtD,QAAM,YAAuC,CAAC;AAC9C,MAAI,UAAU;AACd,MAAI,OAAO,QAAQ,CAAC;AAEpB,UAAQ,QAAQ,CAAC,QAAQ;AACvB,cAAU,GAAG,KAAK,UAAU,GAAG,KAAK,KAAK;AACzC,QAAI,UAAU,GAAG,IAAI,SAAS;AAC5B,gBAAU,UAAU,GAAG;AACvB,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,SAAO,EAAE,MAAM,QAAQ,KAAK;AAC9B;","names":["Schema","Schema","Schema"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "black-diamond-shared",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Shared code between Black Diamond repositories",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -10,7 +10,8 @@
10
10
  ],
11
11
  "scripts": {
12
12
  "build": "tsup",
13
- "test": "vitest"
13
+ "test": "vitest",
14
+ "prepare": "npm run build"
14
15
  },
15
16
  "repository": {
16
17
  "type": "git",