@claudinho/mcp 0.6.2 → 0.8.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.
- package/README.md +2 -1
- package/dist/index.js +1206 -203
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -261,6 +261,151 @@ function nationToRegion(nameOrCode) {
|
|
|
261
261
|
if (byCode) return byCode;
|
|
262
262
|
return intlNameMap()[norm(nameOrCode)];
|
|
263
263
|
}
|
|
264
|
+
var EN = {
|
|
265
|
+
"bracket.title": "Knockout bracket",
|
|
266
|
+
"bracket.stageTitle": "Knockout \xB7 {stage}",
|
|
267
|
+
"bracket.shareTitle": "Knockout bracket \xB7 2026",
|
|
268
|
+
"bracket.degraded": "Live scores unavailable \u2014 bracket structure only, no confirmed advancement.",
|
|
269
|
+
"bracket.standingsDegraded": "Live standings unavailable \u2014 group slots stay TBD until groups finish.",
|
|
270
|
+
"bracket.treeFallback": "Terminal too narrow for tree view \u2014 showing staged list.",
|
|
271
|
+
"bracket.empty": "No bracket matches available.",
|
|
272
|
+
"bracket.projected": "(proj.)",
|
|
273
|
+
"bracket.invalidStage": "Stage must be one of: R32, R16, QF, SF, 3P, F",
|
|
274
|
+
"bracket.unknownStage": 'Unknown stage "{stage}". Use R32, R16, QF, SF, 3P, or F.',
|
|
275
|
+
"bracket.slot.groupWinner": "Group {group} winner",
|
|
276
|
+
"bracket.slot.groupSecond": "Group {group} 2nd",
|
|
277
|
+
"bracket.slot.third": "3rd ({groups})",
|
|
278
|
+
"bracket.slot.winner": "{stage} {n} winner",
|
|
279
|
+
"bracket.slot.loser": "{stage} {n} loser",
|
|
280
|
+
"bracket.slot.tbd": "TBD",
|
|
281
|
+
"live.data": "Live data: {source}",
|
|
282
|
+
"share.tryIt": "Try it: {line}",
|
|
283
|
+
"stage.group": "Group {group}",
|
|
284
|
+
"stage.groupStage": "Group stage",
|
|
285
|
+
"stage.r32": "Round of 32",
|
|
286
|
+
"stage.r16": "Round of 16",
|
|
287
|
+
"stage.qf": "Quarter-final",
|
|
288
|
+
"stage.sf": "Semi-final",
|
|
289
|
+
"stage.3p": "Third-place play-off",
|
|
290
|
+
"stage.f": "Final",
|
|
291
|
+
"stage.friendly": "Friendly"
|
|
292
|
+
};
|
|
293
|
+
var ES = {
|
|
294
|
+
"bracket.title": "Cuadro de eliminatorias",
|
|
295
|
+
"bracket.stageTitle": "Eliminatorias \xB7 {stage}",
|
|
296
|
+
"bracket.shareTitle": "Cuadro de eliminatorias \xB7 2026",
|
|
297
|
+
"bracket.degraded": "Marcadores en vivo no disponibles \u2014 solo estructura del cuadro, sin avances confirmados.",
|
|
298
|
+
"bracket.standingsDegraded": "Tabla en vivo no disponible \u2014 los cupos de grupo siguen por definir hasta que terminen los grupos.",
|
|
299
|
+
"bracket.treeFallback": "Terminal demasiado estrecha para el \xE1rbol \u2014 mostrando lista por fase.",
|
|
300
|
+
"bracket.empty": "No hay partidos de eliminatorias disponibles.",
|
|
301
|
+
"bracket.projected": "(proy.)",
|
|
302
|
+
"bracket.invalidStage": "La fase debe ser una de: R32, R16, QF, SF, 3P, F",
|
|
303
|
+
"bracket.unknownStage": 'Fase desconocida "{stage}". Usa R32, R16, QF, SF, 3P o F.',
|
|
304
|
+
"bracket.slot.groupWinner": "Ganador del grupo {group}",
|
|
305
|
+
"bracket.slot.groupSecond": "2.\xBA del grupo {group}",
|
|
306
|
+
"bracket.slot.third": "3.\xBA ({groups})",
|
|
307
|
+
"bracket.slot.winner": "Ganador {stage} {n}",
|
|
308
|
+
"bracket.slot.loser": "Perdedor {stage} {n}",
|
|
309
|
+
"bracket.slot.tbd": "Por definir",
|
|
310
|
+
"live.data": "Datos en vivo: {source}",
|
|
311
|
+
"share.tryIt": "Pru\xE9balo: {line}",
|
|
312
|
+
"stage.group": "Grupo {group}",
|
|
313
|
+
"stage.groupStage": "Fase de grupos",
|
|
314
|
+
"stage.r32": "Dieciseisavos de final",
|
|
315
|
+
"stage.r16": "Octavos de final",
|
|
316
|
+
"stage.qf": "Cuartos de final",
|
|
317
|
+
"stage.sf": "Semifinal",
|
|
318
|
+
"stage.3p": "Tercer puesto",
|
|
319
|
+
"stage.f": "Final",
|
|
320
|
+
"stage.friendly": "Amistoso"
|
|
321
|
+
};
|
|
322
|
+
var PT = {
|
|
323
|
+
"bracket.title": "Chave do mata-mata",
|
|
324
|
+
"bracket.stageTitle": "Mata-mata \xB7 {stage}",
|
|
325
|
+
"bracket.shareTitle": "Chave do mata-mata \xB7 2026",
|
|
326
|
+
"bracket.degraded": "Placar ao vivo indispon\xEDvel \u2014 apenas a estrutura da chave, sem avan\xE7os confirmados.",
|
|
327
|
+
"bracket.standingsDegraded": "Classifica\xE7\xE3o ao vivo indispon\xEDvel \u2014 vagas de grupo seguem a definir at\xE9 o fim dos grupos.",
|
|
328
|
+
"bracket.treeFallback": "Terminal estreito demais para a \xE1rvore \u2014 mostrando lista por fase.",
|
|
329
|
+
"bracket.empty": "Nenhum jogo do mata-mata dispon\xEDvel.",
|
|
330
|
+
"bracket.projected": "(proj.)",
|
|
331
|
+
"bracket.invalidStage": "A fase deve ser uma de: R32, R16, QF, SF, 3P, F",
|
|
332
|
+
"bracket.unknownStage": 'Fase desconhecida "{stage}". Use R32, R16, QF, SF, 3P ou F.',
|
|
333
|
+
"bracket.slot.groupWinner": "Vencedor do grupo {group}",
|
|
334
|
+
"bracket.slot.groupSecond": "2.\xBA do grupo {group}",
|
|
335
|
+
"bracket.slot.third": "3.\xBA ({groups})",
|
|
336
|
+
"bracket.slot.winner": "Vencedor {stage} {n}",
|
|
337
|
+
"bracket.slot.loser": "Perdedor {stage} {n}",
|
|
338
|
+
"bracket.slot.tbd": "A definir",
|
|
339
|
+
"live.data": "Dados ao vivo: {source}",
|
|
340
|
+
"share.tryIt": "Experimente: {line}",
|
|
341
|
+
"stage.group": "Grupo {group}",
|
|
342
|
+
"stage.groupStage": "Fase de grupos",
|
|
343
|
+
"stage.r32": "Fase de 32 equipes",
|
|
344
|
+
"stage.r16": "Oitavas de final",
|
|
345
|
+
"stage.qf": "Quartas de final",
|
|
346
|
+
"stage.sf": "Semifinal",
|
|
347
|
+
"stage.3p": "Disputa do 3.\xBA lugar",
|
|
348
|
+
"stage.f": "Final",
|
|
349
|
+
"stage.friendly": "Amistoso"
|
|
350
|
+
};
|
|
351
|
+
var FR = {
|
|
352
|
+
"bracket.title": "Tableau \xE0 \xE9limination directe",
|
|
353
|
+
"bracket.stageTitle": "\xC9liminatoires \xB7 {stage}",
|
|
354
|
+
"bracket.shareTitle": "Tableau \xE0 \xE9limination directe \xB7 2026",
|
|
355
|
+
"bracket.degraded": "Scores en direct indisponibles \u2014 structure du tableau seulement, aucune qualification confirm\xE9e.",
|
|
356
|
+
"bracket.standingsDegraded": "Classement en direct indisponible \u2014 les places de groupe restent \xE0 d\xE9finir jusqu\u2019\xE0 la fin des poules.",
|
|
357
|
+
"bracket.treeFallback": "Terminal trop \xE9troit pour l\u2019arbre \u2014 affichage par phase.",
|
|
358
|
+
"bracket.empty": "Aucun match \xE0 \xE9limination directe disponible.",
|
|
359
|
+
"bracket.projected": "(proj.)",
|
|
360
|
+
"bracket.invalidStage": "La phase doit \xEAtre l\u2019une de : R32, R16, QF, SF, 3P, F",
|
|
361
|
+
"bracket.unknownStage": "Phase inconnue \xAB {stage} \xBB. Utilisez R32, R16, QF, SF, 3P ou F.",
|
|
362
|
+
"bracket.slot.groupWinner": "Vainqueur du groupe {group}",
|
|
363
|
+
"bracket.slot.groupSecond": "2e du groupe {group}",
|
|
364
|
+
"bracket.slot.third": "3e ({groups})",
|
|
365
|
+
"bracket.slot.winner": "Vainqueur {stage} {n}",
|
|
366
|
+
"bracket.slot.loser": "Perdant {stage} {n}",
|
|
367
|
+
"bracket.slot.tbd": "\xC0 d\xE9finir",
|
|
368
|
+
"live.data": "Donn\xE9es en direct : {source}",
|
|
369
|
+
"share.tryIt": "Essayez : {line}",
|
|
370
|
+
"stage.group": "Groupe {group}",
|
|
371
|
+
"stage.groupStage": "Phase de groupes",
|
|
372
|
+
"stage.r32": "Seizi\xE8mes de finale",
|
|
373
|
+
"stage.r16": "Huiti\xE8mes de finale",
|
|
374
|
+
"stage.qf": "Quarts de finale",
|
|
375
|
+
"stage.sf": "Demi-finale",
|
|
376
|
+
"stage.3p": "Match pour la 3e place",
|
|
377
|
+
"stage.f": "Finale",
|
|
378
|
+
"stage.friendly": "Match amical"
|
|
379
|
+
};
|
|
380
|
+
var CATALOGS = { en: EN, es: ES, pt: PT, fr: FR };
|
|
381
|
+
function normalizeLang(lang) {
|
|
382
|
+
const code = (lang ?? "en").slice(0, 2).toLowerCase();
|
|
383
|
+
if (code === "es" || code === "pt" || code === "fr") return code;
|
|
384
|
+
return "en";
|
|
385
|
+
}
|
|
386
|
+
function t(lang, key, vars) {
|
|
387
|
+
const dict = CATALOGS[normalizeLang(lang)];
|
|
388
|
+
let s = dict[key] ?? EN[key] ?? key;
|
|
389
|
+
if (vars) {
|
|
390
|
+
for (const [k, v] of Object.entries(vars)) s = s.replaceAll(`{${k}}`, v);
|
|
391
|
+
}
|
|
392
|
+
return s;
|
|
393
|
+
}
|
|
394
|
+
var STAGE_KEYS = {
|
|
395
|
+
GROUP: "stage.groupStage",
|
|
396
|
+
R32: "stage.r32",
|
|
397
|
+
R16: "stage.r16",
|
|
398
|
+
QF: "stage.qf",
|
|
399
|
+
SF: "stage.sf",
|
|
400
|
+
"3P": "stage.3p",
|
|
401
|
+
F: "stage.f",
|
|
402
|
+
FRIENDLY: "stage.friendly"
|
|
403
|
+
};
|
|
404
|
+
function stageLabelI18n(lang, stage, group) {
|
|
405
|
+
if (group) return t(lang, "stage.group", { group });
|
|
406
|
+
const key = STAGE_KEYS[stage];
|
|
407
|
+
return key ? t(lang, key) : stage;
|
|
408
|
+
}
|
|
264
409
|
function isValidTimeZone(tz) {
|
|
265
410
|
if (!tz) return false;
|
|
266
411
|
try {
|
|
@@ -354,6 +499,11 @@ function localDate(iso, tz) {
|
|
|
354
499
|
timeZone: zone
|
|
355
500
|
}).format(new Date(iso));
|
|
356
501
|
}
|
|
502
|
+
function outcomeFromScore(home, away) {
|
|
503
|
+
if (home > away) return "H";
|
|
504
|
+
if (home < away) return "A";
|
|
505
|
+
return "D";
|
|
506
|
+
}
|
|
357
507
|
function isLive(status) {
|
|
358
508
|
return status === "LIVE" || status === "HT";
|
|
359
509
|
}
|
|
@@ -370,6 +520,29 @@ function matchLocation(match) {
|
|
|
370
520
|
function byKickoff(a, b) {
|
|
371
521
|
return a.kickoff.localeCompare(b.kickoff);
|
|
372
522
|
}
|
|
523
|
+
function stageLabel(m) {
|
|
524
|
+
if (m.group) return `Group ${m.group}`;
|
|
525
|
+
switch (m.stage) {
|
|
526
|
+
case "GROUP":
|
|
527
|
+
return "Group stage";
|
|
528
|
+
case "R32":
|
|
529
|
+
return "Round of 32";
|
|
530
|
+
case "R16":
|
|
531
|
+
return "Round of 16";
|
|
532
|
+
case "QF":
|
|
533
|
+
return "Quarter-final";
|
|
534
|
+
case "SF":
|
|
535
|
+
return "Semi-final";
|
|
536
|
+
case "3P":
|
|
537
|
+
return "Third-place play-off";
|
|
538
|
+
case "F":
|
|
539
|
+
return "Final";
|
|
540
|
+
case "FRIENDLY":
|
|
541
|
+
return "Friendly";
|
|
542
|
+
default:
|
|
543
|
+
return "";
|
|
544
|
+
}
|
|
545
|
+
}
|
|
373
546
|
var FLAVOR_LEVELS = ["off", "subtle", "full"];
|
|
374
547
|
var DEFAULT_FLAVOR = "full";
|
|
375
548
|
function isFlavorLevel(s) {
|
|
@@ -458,7 +631,7 @@ var schedule_2026_default = [
|
|
|
458
631
|
flag: "\u{1F1FF}\u{1F1E6}"
|
|
459
632
|
},
|
|
460
633
|
status: "SCHEDULED",
|
|
461
|
-
updatedAt: "2026-06-
|
|
634
|
+
updatedAt: "2026-06-24T01:20:06.301Z"
|
|
462
635
|
},
|
|
463
636
|
{
|
|
464
637
|
id: "760414",
|
|
@@ -479,7 +652,7 @@ var schedule_2026_default = [
|
|
|
479
652
|
flag: "\u{1F1E8}\u{1F1FF}"
|
|
480
653
|
},
|
|
481
654
|
status: "SCHEDULED",
|
|
482
|
-
updatedAt: "2026-06-
|
|
655
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
483
656
|
},
|
|
484
657
|
{
|
|
485
658
|
id: "760416",
|
|
@@ -500,7 +673,7 @@ var schedule_2026_default = [
|
|
|
500
673
|
flag: "\u{1F1E7}\u{1F1E6}"
|
|
501
674
|
},
|
|
502
675
|
status: "SCHEDULED",
|
|
503
|
-
updatedAt: "2026-06-
|
|
676
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
504
677
|
},
|
|
505
678
|
{
|
|
506
679
|
id: "760417",
|
|
@@ -521,7 +694,7 @@ var schedule_2026_default = [
|
|
|
521
694
|
flag: "\u{1F1F5}\u{1F1FE}"
|
|
522
695
|
},
|
|
523
696
|
status: "SCHEDULED",
|
|
524
|
-
updatedAt: "2026-06-
|
|
697
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
525
698
|
},
|
|
526
699
|
{
|
|
527
700
|
id: "760420",
|
|
@@ -542,7 +715,7 @@ var schedule_2026_default = [
|
|
|
542
715
|
flag: "\u{1F1E8}\u{1F1ED}"
|
|
543
716
|
},
|
|
544
717
|
status: "SCHEDULED",
|
|
545
|
-
updatedAt: "2026-06-
|
|
718
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
546
719
|
},
|
|
547
720
|
{
|
|
548
721
|
id: "760419",
|
|
@@ -563,7 +736,7 @@ var schedule_2026_default = [
|
|
|
563
736
|
flag: "\u{1F1F2}\u{1F1E6}"
|
|
564
737
|
},
|
|
565
738
|
status: "SCHEDULED",
|
|
566
|
-
updatedAt: "2026-06-
|
|
739
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
567
740
|
},
|
|
568
741
|
{
|
|
569
742
|
id: "760418",
|
|
@@ -584,7 +757,7 @@ var schedule_2026_default = [
|
|
|
584
757
|
flag: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"
|
|
585
758
|
},
|
|
586
759
|
status: "SCHEDULED",
|
|
587
|
-
updatedAt: "2026-06-
|
|
760
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
588
761
|
},
|
|
589
762
|
{
|
|
590
763
|
id: "760421",
|
|
@@ -605,7 +778,7 @@ var schedule_2026_default = [
|
|
|
605
778
|
flag: "\u{1F1F9}\u{1F1F7}"
|
|
606
779
|
},
|
|
607
780
|
status: "SCHEDULED",
|
|
608
|
-
updatedAt: "2026-06-
|
|
781
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
609
782
|
},
|
|
610
783
|
{
|
|
611
784
|
id: "760422",
|
|
@@ -626,7 +799,7 @@ var schedule_2026_default = [
|
|
|
626
799
|
flag: "\u{1F1E8}\u{1F1FC}"
|
|
627
800
|
},
|
|
628
801
|
status: "SCHEDULED",
|
|
629
|
-
updatedAt: "2026-06-
|
|
802
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
630
803
|
},
|
|
631
804
|
{
|
|
632
805
|
id: "760425",
|
|
@@ -647,7 +820,7 @@ var schedule_2026_default = [
|
|
|
647
820
|
flag: "\u{1F1EF}\u{1F1F5}"
|
|
648
821
|
},
|
|
649
822
|
status: "SCHEDULED",
|
|
650
|
-
updatedAt: "2026-06-
|
|
823
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
651
824
|
},
|
|
652
825
|
{
|
|
653
826
|
id: "760423",
|
|
@@ -668,7 +841,7 @@ var schedule_2026_default = [
|
|
|
668
841
|
flag: "\u{1F1EA}\u{1F1E8}"
|
|
669
842
|
},
|
|
670
843
|
status: "SCHEDULED",
|
|
671
|
-
updatedAt: "2026-06-
|
|
844
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
672
845
|
},
|
|
673
846
|
{
|
|
674
847
|
id: "760424",
|
|
@@ -689,7 +862,7 @@ var schedule_2026_default = [
|
|
|
689
862
|
flag: "\u{1F1F9}\u{1F1F3}"
|
|
690
863
|
},
|
|
691
864
|
status: "SCHEDULED",
|
|
692
|
-
updatedAt: "2026-06-
|
|
865
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
693
866
|
},
|
|
694
867
|
{
|
|
695
868
|
id: "760428",
|
|
@@ -710,7 +883,7 @@ var schedule_2026_default = [
|
|
|
710
883
|
flag: "\u{1F1E8}\u{1F1FB}"
|
|
711
884
|
},
|
|
712
885
|
status: "SCHEDULED",
|
|
713
|
-
updatedAt: "2026-06-
|
|
886
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
714
887
|
},
|
|
715
888
|
{
|
|
716
889
|
id: "760426",
|
|
@@ -731,7 +904,7 @@ var schedule_2026_default = [
|
|
|
731
904
|
flag: "\u{1F1EA}\u{1F1EC}"
|
|
732
905
|
},
|
|
733
906
|
status: "SCHEDULED",
|
|
734
|
-
updatedAt: "2026-06-
|
|
907
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
735
908
|
},
|
|
736
909
|
{
|
|
737
910
|
id: "760429",
|
|
@@ -752,7 +925,7 @@ var schedule_2026_default = [
|
|
|
752
925
|
flag: "\u{1F1FA}\u{1F1FE}"
|
|
753
926
|
},
|
|
754
927
|
status: "SCHEDULED",
|
|
755
|
-
updatedAt: "2026-06-
|
|
928
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
756
929
|
},
|
|
757
930
|
{
|
|
758
931
|
id: "760427",
|
|
@@ -773,7 +946,7 @@ var schedule_2026_default = [
|
|
|
773
946
|
flag: "\u{1F1F3}\u{1F1FF}"
|
|
774
947
|
},
|
|
775
948
|
status: "SCHEDULED",
|
|
776
|
-
updatedAt: "2026-06-
|
|
949
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
777
950
|
},
|
|
778
951
|
{
|
|
779
952
|
id: "760432",
|
|
@@ -794,7 +967,7 @@ var schedule_2026_default = [
|
|
|
794
967
|
flag: "\u{1F1F8}\u{1F1F3}"
|
|
795
968
|
},
|
|
796
969
|
status: "SCHEDULED",
|
|
797
|
-
updatedAt: "2026-06-
|
|
970
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
798
971
|
},
|
|
799
972
|
{
|
|
800
973
|
id: "760430",
|
|
@@ -815,7 +988,7 @@ var schedule_2026_default = [
|
|
|
815
988
|
flag: "\u{1F1F3}\u{1F1F4}"
|
|
816
989
|
},
|
|
817
990
|
status: "SCHEDULED",
|
|
818
|
-
updatedAt: "2026-06-
|
|
991
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
819
992
|
},
|
|
820
993
|
{
|
|
821
994
|
id: "760433",
|
|
@@ -836,7 +1009,7 @@ var schedule_2026_default = [
|
|
|
836
1009
|
flag: "\u{1F1E9}\u{1F1FF}"
|
|
837
1010
|
},
|
|
838
1011
|
status: "SCHEDULED",
|
|
839
|
-
updatedAt: "2026-06-
|
|
1012
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
840
1013
|
},
|
|
841
1014
|
{
|
|
842
1015
|
id: "760431",
|
|
@@ -857,7 +1030,7 @@ var schedule_2026_default = [
|
|
|
857
1030
|
flag: "\u{1F1EF}\u{1F1F4}"
|
|
858
1031
|
},
|
|
859
1032
|
status: "SCHEDULED",
|
|
860
|
-
updatedAt: "2026-06-
|
|
1033
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
861
1034
|
},
|
|
862
1035
|
{
|
|
863
1036
|
id: "760435",
|
|
@@ -878,7 +1051,7 @@ var schedule_2026_default = [
|
|
|
878
1051
|
flag: "\u{1F1E8}\u{1F1E9}"
|
|
879
1052
|
},
|
|
880
1053
|
status: "SCHEDULED",
|
|
881
|
-
updatedAt: "2026-06-
|
|
1054
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
882
1055
|
},
|
|
883
1056
|
{
|
|
884
1057
|
id: "760437",
|
|
@@ -899,7 +1072,7 @@ var schedule_2026_default = [
|
|
|
899
1072
|
flag: "\u{1F1ED}\u{1F1F7}"
|
|
900
1073
|
},
|
|
901
1074
|
status: "SCHEDULED",
|
|
902
|
-
updatedAt: "2026-06-
|
|
1075
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
903
1076
|
},
|
|
904
1077
|
{
|
|
905
1078
|
id: "760434",
|
|
@@ -920,7 +1093,7 @@ var schedule_2026_default = [
|
|
|
920
1093
|
flag: "\u{1F1F5}\u{1F1E6}"
|
|
921
1094
|
},
|
|
922
1095
|
status: "SCHEDULED",
|
|
923
|
-
updatedAt: "2026-06-
|
|
1096
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
924
1097
|
},
|
|
925
1098
|
{
|
|
926
1099
|
id: "760436",
|
|
@@ -941,7 +1114,7 @@ var schedule_2026_default = [
|
|
|
941
1114
|
flag: "\u{1F1E8}\u{1F1F4}"
|
|
942
1115
|
},
|
|
943
1116
|
status: "SCHEDULED",
|
|
944
|
-
updatedAt: "2026-06-
|
|
1117
|
+
updatedAt: "2026-06-24T01:20:06.302Z"
|
|
945
1118
|
},
|
|
946
1119
|
{
|
|
947
1120
|
id: "760438",
|
|
@@ -962,7 +1135,7 @@ var schedule_2026_default = [
|
|
|
962
1135
|
flag: "\u{1F1FF}\u{1F1E6}"
|
|
963
1136
|
},
|
|
964
1137
|
status: "SCHEDULED",
|
|
965
|
-
updatedAt: "2026-06-
|
|
1138
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
966
1139
|
},
|
|
967
1140
|
{
|
|
968
1141
|
id: "760439",
|
|
@@ -983,7 +1156,7 @@ var schedule_2026_default = [
|
|
|
983
1156
|
flag: "\u{1F1E7}\u{1F1E6}"
|
|
984
1157
|
},
|
|
985
1158
|
status: "SCHEDULED",
|
|
986
|
-
updatedAt: "2026-06-
|
|
1159
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
987
1160
|
},
|
|
988
1161
|
{
|
|
989
1162
|
id: "760440",
|
|
@@ -1004,7 +1177,7 @@ var schedule_2026_default = [
|
|
|
1004
1177
|
flag: "\u{1F1F6}\u{1F1E6}"
|
|
1005
1178
|
},
|
|
1006
1179
|
status: "SCHEDULED",
|
|
1007
|
-
updatedAt: "2026-06-
|
|
1180
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1008
1181
|
},
|
|
1009
1182
|
{
|
|
1010
1183
|
id: "760441",
|
|
@@ -1025,7 +1198,7 @@ var schedule_2026_default = [
|
|
|
1025
1198
|
flag: "\u{1F1F0}\u{1F1F7}"
|
|
1026
1199
|
},
|
|
1027
1200
|
status: "SCHEDULED",
|
|
1028
|
-
updatedAt: "2026-06-
|
|
1201
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1029
1202
|
},
|
|
1030
1203
|
{
|
|
1031
1204
|
id: "760442",
|
|
@@ -1046,7 +1219,7 @@ var schedule_2026_default = [
|
|
|
1046
1219
|
flag: "\u{1F1E6}\u{1F1FA}"
|
|
1047
1220
|
},
|
|
1048
1221
|
status: "SCHEDULED",
|
|
1049
|
-
updatedAt: "2026-06-
|
|
1222
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1050
1223
|
},
|
|
1051
1224
|
{
|
|
1052
1225
|
id: "760445",
|
|
@@ -1067,7 +1240,7 @@ var schedule_2026_default = [
|
|
|
1067
1240
|
flag: "\u{1F1F2}\u{1F1E6}"
|
|
1068
1241
|
},
|
|
1069
1242
|
status: "SCHEDULED",
|
|
1070
|
-
updatedAt: "2026-06-
|
|
1243
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1071
1244
|
},
|
|
1072
1245
|
{
|
|
1073
1246
|
id: "760444",
|
|
@@ -1088,7 +1261,7 @@ var schedule_2026_default = [
|
|
|
1088
1261
|
flag: "\u{1F1ED}\u{1F1F9}"
|
|
1089
1262
|
},
|
|
1090
1263
|
status: "SCHEDULED",
|
|
1091
|
-
updatedAt: "2026-06-
|
|
1264
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1092
1265
|
},
|
|
1093
1266
|
{
|
|
1094
1267
|
id: "760443",
|
|
@@ -1109,7 +1282,7 @@ var schedule_2026_default = [
|
|
|
1109
1282
|
flag: "\u{1F1F5}\u{1F1FE}"
|
|
1110
1283
|
},
|
|
1111
1284
|
status: "SCHEDULED",
|
|
1112
|
-
updatedAt: "2026-06-
|
|
1285
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1113
1286
|
},
|
|
1114
1287
|
{
|
|
1115
1288
|
id: "760447",
|
|
@@ -1130,7 +1303,7 @@ var schedule_2026_default = [
|
|
|
1130
1303
|
flag: "\u{1F1F8}\u{1F1EA}"
|
|
1131
1304
|
},
|
|
1132
1305
|
status: "SCHEDULED",
|
|
1133
|
-
updatedAt: "2026-06-
|
|
1306
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1134
1307
|
},
|
|
1135
1308
|
{
|
|
1136
1309
|
id: "760448",
|
|
@@ -1151,7 +1324,7 @@ var schedule_2026_default = [
|
|
|
1151
1324
|
flag: "\u{1F1E8}\u{1F1EE}"
|
|
1152
1325
|
},
|
|
1153
1326
|
status: "SCHEDULED",
|
|
1154
|
-
updatedAt: "2026-06-
|
|
1327
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1155
1328
|
},
|
|
1156
1329
|
{
|
|
1157
1330
|
id: "760446",
|
|
@@ -1172,7 +1345,7 @@ var schedule_2026_default = [
|
|
|
1172
1345
|
flag: "\u{1F1E8}\u{1F1FC}"
|
|
1173
1346
|
},
|
|
1174
1347
|
status: "SCHEDULED",
|
|
1175
|
-
updatedAt: "2026-06-
|
|
1348
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1176
1349
|
},
|
|
1177
1350
|
{
|
|
1178
1351
|
id: "760449",
|
|
@@ -1193,7 +1366,7 @@ var schedule_2026_default = [
|
|
|
1193
1366
|
flag: "\u{1F1EF}\u{1F1F5}"
|
|
1194
1367
|
},
|
|
1195
1368
|
status: "SCHEDULED",
|
|
1196
|
-
updatedAt: "2026-06-
|
|
1369
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1197
1370
|
},
|
|
1198
1371
|
{
|
|
1199
1372
|
id: "760453",
|
|
@@ -1214,7 +1387,7 @@ var schedule_2026_default = [
|
|
|
1214
1387
|
flag: "\u{1F1F8}\u{1F1E6}"
|
|
1215
1388
|
},
|
|
1216
1389
|
status: "SCHEDULED",
|
|
1217
|
-
updatedAt: "2026-06-
|
|
1390
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1218
1391
|
},
|
|
1219
1392
|
{
|
|
1220
1393
|
id: "760451",
|
|
@@ -1235,7 +1408,7 @@ var schedule_2026_default = [
|
|
|
1235
1408
|
flag: "\u{1F1EE}\u{1F1F7}"
|
|
1236
1409
|
},
|
|
1237
1410
|
status: "SCHEDULED",
|
|
1238
|
-
updatedAt: "2026-06-
|
|
1411
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1239
1412
|
},
|
|
1240
1413
|
{
|
|
1241
1414
|
id: "760450",
|
|
@@ -1256,7 +1429,7 @@ var schedule_2026_default = [
|
|
|
1256
1429
|
flag: "\u{1F1E8}\u{1F1FB}"
|
|
1257
1430
|
},
|
|
1258
1431
|
status: "SCHEDULED",
|
|
1259
|
-
updatedAt: "2026-06-
|
|
1432
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1260
1433
|
},
|
|
1261
1434
|
{
|
|
1262
1435
|
id: "760452",
|
|
@@ -1277,7 +1450,7 @@ var schedule_2026_default = [
|
|
|
1277
1450
|
flag: "\u{1F1EA}\u{1F1EC}"
|
|
1278
1451
|
},
|
|
1279
1452
|
status: "SCHEDULED",
|
|
1280
|
-
updatedAt: "2026-06-
|
|
1453
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1281
1454
|
},
|
|
1282
1455
|
{
|
|
1283
1456
|
id: "760456",
|
|
@@ -1298,7 +1471,7 @@ var schedule_2026_default = [
|
|
|
1298
1471
|
flag: "\u{1F1E6}\u{1F1F9}"
|
|
1299
1472
|
},
|
|
1300
1473
|
status: "SCHEDULED",
|
|
1301
|
-
updatedAt: "2026-06-
|
|
1474
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1302
1475
|
},
|
|
1303
1476
|
{
|
|
1304
1477
|
id: "760457",
|
|
@@ -1319,7 +1492,7 @@ var schedule_2026_default = [
|
|
|
1319
1492
|
flag: "\u{1F1EE}\u{1F1F6}"
|
|
1320
1493
|
},
|
|
1321
1494
|
status: "SCHEDULED",
|
|
1322
|
-
updatedAt: "2026-06-
|
|
1495
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1323
1496
|
},
|
|
1324
1497
|
{
|
|
1325
1498
|
id: "760454",
|
|
@@ -1340,7 +1513,7 @@ var schedule_2026_default = [
|
|
|
1340
1513
|
flag: "\u{1F1F8}\u{1F1F3}"
|
|
1341
1514
|
},
|
|
1342
1515
|
status: "SCHEDULED",
|
|
1343
|
-
updatedAt: "2026-06-
|
|
1516
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1344
1517
|
},
|
|
1345
1518
|
{
|
|
1346
1519
|
id: "760455",
|
|
@@ -1361,7 +1534,7 @@ var schedule_2026_default = [
|
|
|
1361
1534
|
flag: "\u{1F1E9}\u{1F1FF}"
|
|
1362
1535
|
},
|
|
1363
1536
|
status: "SCHEDULED",
|
|
1364
|
-
updatedAt: "2026-06-
|
|
1537
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1365
1538
|
},
|
|
1366
1539
|
{
|
|
1367
1540
|
id: "760461",
|
|
@@ -1382,7 +1555,7 @@ var schedule_2026_default = [
|
|
|
1382
1555
|
flag: "\u{1F1FA}\u{1F1FF}"
|
|
1383
1556
|
},
|
|
1384
1557
|
status: "SCHEDULED",
|
|
1385
|
-
updatedAt: "2026-06-
|
|
1558
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1386
1559
|
},
|
|
1387
1560
|
{
|
|
1388
1561
|
id: "760458",
|
|
@@ -1403,7 +1576,7 @@ var schedule_2026_default = [
|
|
|
1403
1576
|
flag: "\u{1F1EC}\u{1F1ED}"
|
|
1404
1577
|
},
|
|
1405
1578
|
status: "SCHEDULED",
|
|
1406
|
-
updatedAt: "2026-06-
|
|
1579
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1407
1580
|
},
|
|
1408
1581
|
{
|
|
1409
1582
|
id: "760460",
|
|
@@ -1424,7 +1597,7 @@ var schedule_2026_default = [
|
|
|
1424
1597
|
flag: "\u{1F1ED}\u{1F1F7}"
|
|
1425
1598
|
},
|
|
1426
1599
|
status: "SCHEDULED",
|
|
1427
|
-
updatedAt: "2026-06-
|
|
1600
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1428
1601
|
},
|
|
1429
1602
|
{
|
|
1430
1603
|
id: "760459",
|
|
@@ -1445,7 +1618,7 @@ var schedule_2026_default = [
|
|
|
1445
1618
|
flag: "\u{1F1E8}\u{1F1E9}"
|
|
1446
1619
|
},
|
|
1447
1620
|
status: "SCHEDULED",
|
|
1448
|
-
updatedAt: "2026-06-
|
|
1621
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1449
1622
|
},
|
|
1450
1623
|
{
|
|
1451
1624
|
id: "760462",
|
|
@@ -1466,7 +1639,7 @@ var schedule_2026_default = [
|
|
|
1466
1639
|
flag: "\u{1F1F6}\u{1F1E6}"
|
|
1467
1640
|
},
|
|
1468
1641
|
status: "SCHEDULED",
|
|
1469
|
-
updatedAt: "2026-06-
|
|
1642
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1470
1643
|
},
|
|
1471
1644
|
{
|
|
1472
1645
|
id: "760463",
|
|
@@ -1487,7 +1660,7 @@ var schedule_2026_default = [
|
|
|
1487
1660
|
flag: "\u{1F1E8}\u{1F1E6}"
|
|
1488
1661
|
},
|
|
1489
1662
|
status: "SCHEDULED",
|
|
1490
|
-
updatedAt: "2026-06-
|
|
1663
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1491
1664
|
},
|
|
1492
1665
|
{
|
|
1493
1666
|
id: "760464",
|
|
@@ -1508,7 +1681,7 @@ var schedule_2026_default = [
|
|
|
1508
1681
|
flag: "\u{1F1ED}\u{1F1F9}"
|
|
1509
1682
|
},
|
|
1510
1683
|
status: "SCHEDULED",
|
|
1511
|
-
updatedAt: "2026-06-
|
|
1684
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1512
1685
|
},
|
|
1513
1686
|
{
|
|
1514
1687
|
id: "760465",
|
|
@@ -1529,7 +1702,7 @@ var schedule_2026_default = [
|
|
|
1529
1702
|
flag: "\u{1F1E7}\u{1F1F7}"
|
|
1530
1703
|
},
|
|
1531
1704
|
status: "SCHEDULED",
|
|
1532
|
-
updatedAt: "2026-06-
|
|
1705
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1533
1706
|
},
|
|
1534
1707
|
{
|
|
1535
1708
|
id: "760467",
|
|
@@ -1550,7 +1723,7 @@ var schedule_2026_default = [
|
|
|
1550
1723
|
flag: "\u{1F1F2}\u{1F1FD}"
|
|
1551
1724
|
},
|
|
1552
1725
|
status: "SCHEDULED",
|
|
1553
|
-
updatedAt: "2026-06-
|
|
1726
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1554
1727
|
},
|
|
1555
1728
|
{
|
|
1556
1729
|
id: "760466",
|
|
@@ -1571,7 +1744,7 @@ var schedule_2026_default = [
|
|
|
1571
1744
|
flag: "\u{1F1F0}\u{1F1F7}"
|
|
1572
1745
|
},
|
|
1573
1746
|
status: "SCHEDULED",
|
|
1574
|
-
updatedAt: "2026-06-
|
|
1747
|
+
updatedAt: "2026-06-24T01:20:06.394Z"
|
|
1575
1748
|
},
|
|
1576
1749
|
{
|
|
1577
1750
|
id: "760473",
|
|
@@ -1592,7 +1765,7 @@ var schedule_2026_default = [
|
|
|
1592
1765
|
flag: "\u{1F1E8}\u{1F1EE}"
|
|
1593
1766
|
},
|
|
1594
1767
|
status: "SCHEDULED",
|
|
1595
|
-
updatedAt: "2026-06-
|
|
1768
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1596
1769
|
},
|
|
1597
1770
|
{
|
|
1598
1771
|
id: "760468",
|
|
@@ -1613,7 +1786,7 @@ var schedule_2026_default = [
|
|
|
1613
1786
|
flag: "\u{1F1E9}\u{1F1EA}"
|
|
1614
1787
|
},
|
|
1615
1788
|
status: "SCHEDULED",
|
|
1616
|
-
updatedAt: "2026-06-
|
|
1789
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1617
1790
|
},
|
|
1618
1791
|
{
|
|
1619
1792
|
id: "760471",
|
|
@@ -1634,7 +1807,7 @@ var schedule_2026_default = [
|
|
|
1634
1807
|
flag: "\u{1F1F8}\u{1F1EA}"
|
|
1635
1808
|
},
|
|
1636
1809
|
status: "SCHEDULED",
|
|
1637
|
-
updatedAt: "2026-06-
|
|
1810
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1638
1811
|
},
|
|
1639
1812
|
{
|
|
1640
1813
|
id: "760472",
|
|
@@ -1655,7 +1828,7 @@ var schedule_2026_default = [
|
|
|
1655
1828
|
flag: "\u{1F1F3}\u{1F1F1}"
|
|
1656
1829
|
},
|
|
1657
1830
|
status: "SCHEDULED",
|
|
1658
|
-
updatedAt: "2026-06-
|
|
1831
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1659
1832
|
},
|
|
1660
1833
|
{
|
|
1661
1834
|
id: "760469",
|
|
@@ -1676,7 +1849,7 @@ var schedule_2026_default = [
|
|
|
1676
1849
|
flag: "\u{1F1E6}\u{1F1FA}"
|
|
1677
1850
|
},
|
|
1678
1851
|
status: "SCHEDULED",
|
|
1679
|
-
updatedAt: "2026-06-
|
|
1852
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1680
1853
|
},
|
|
1681
1854
|
{
|
|
1682
1855
|
id: "760470",
|
|
@@ -1697,7 +1870,7 @@ var schedule_2026_default = [
|
|
|
1697
1870
|
flag: "\u{1F1FA}\u{1F1F8}"
|
|
1698
1871
|
},
|
|
1699
1872
|
status: "SCHEDULED",
|
|
1700
|
-
updatedAt: "2026-06-
|
|
1873
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1701
1874
|
},
|
|
1702
1875
|
{
|
|
1703
1876
|
id: "760475",
|
|
@@ -1718,7 +1891,7 @@ var schedule_2026_default = [
|
|
|
1718
1891
|
flag: "\u{1F1EB}\u{1F1F7}"
|
|
1719
1892
|
},
|
|
1720
1893
|
status: "SCHEDULED",
|
|
1721
|
-
updatedAt: "2026-06-
|
|
1894
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1722
1895
|
},
|
|
1723
1896
|
{
|
|
1724
1897
|
id: "760474",
|
|
@@ -1739,7 +1912,7 @@ var schedule_2026_default = [
|
|
|
1739
1912
|
flag: "\u{1F1EE}\u{1F1F6}"
|
|
1740
1913
|
},
|
|
1741
1914
|
status: "SCHEDULED",
|
|
1742
|
-
updatedAt: "2026-06-
|
|
1915
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1743
1916
|
},
|
|
1744
1917
|
{
|
|
1745
1918
|
id: "760478",
|
|
@@ -1760,7 +1933,7 @@ var schedule_2026_default = [
|
|
|
1760
1933
|
flag: "\u{1F1F8}\u{1F1E6}"
|
|
1761
1934
|
},
|
|
1762
1935
|
status: "SCHEDULED",
|
|
1763
|
-
updatedAt: "2026-06-
|
|
1936
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1764
1937
|
},
|
|
1765
1938
|
{
|
|
1766
1939
|
id: "760479",
|
|
@@ -1781,7 +1954,7 @@ var schedule_2026_default = [
|
|
|
1781
1954
|
flag: "\u{1F1EA}\u{1F1F8}"
|
|
1782
1955
|
},
|
|
1783
1956
|
status: "SCHEDULED",
|
|
1784
|
-
updatedAt: "2026-06-
|
|
1957
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1785
1958
|
},
|
|
1786
1959
|
{
|
|
1787
1960
|
id: "760476",
|
|
@@ -1802,7 +1975,7 @@ var schedule_2026_default = [
|
|
|
1802
1975
|
flag: "\u{1F1EE}\u{1F1F7}"
|
|
1803
1976
|
},
|
|
1804
1977
|
status: "SCHEDULED",
|
|
1805
|
-
updatedAt: "2026-06-
|
|
1978
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1806
1979
|
},
|
|
1807
1980
|
{
|
|
1808
1981
|
id: "760477",
|
|
@@ -1823,7 +1996,7 @@ var schedule_2026_default = [
|
|
|
1823
1996
|
flag: "\u{1F1E7}\u{1F1EA}"
|
|
1824
1997
|
},
|
|
1825
1998
|
status: "SCHEDULED",
|
|
1826
|
-
updatedAt: "2026-06-
|
|
1999
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1827
2000
|
},
|
|
1828
2001
|
{
|
|
1829
2002
|
id: "760480",
|
|
@@ -1844,7 +2017,7 @@ var schedule_2026_default = [
|
|
|
1844
2017
|
flag: "\u{1F1EC}\u{1F1ED}"
|
|
1845
2018
|
},
|
|
1846
2019
|
status: "SCHEDULED",
|
|
1847
|
-
updatedAt: "2026-06-
|
|
2020
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1848
2021
|
},
|
|
1849
2022
|
{
|
|
1850
2023
|
id: "760485",
|
|
@@ -1865,7 +2038,7 @@ var schedule_2026_default = [
|
|
|
1865
2038
|
flag: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}"
|
|
1866
2039
|
},
|
|
1867
2040
|
status: "SCHEDULED",
|
|
1868
|
-
updatedAt: "2026-06-
|
|
2041
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1869
2042
|
},
|
|
1870
2043
|
{
|
|
1871
2044
|
id: "760481",
|
|
@@ -1886,7 +2059,7 @@ var schedule_2026_default = [
|
|
|
1886
2059
|
flag: "\u{1F1F5}\u{1F1F9}"
|
|
1887
2060
|
},
|
|
1888
2061
|
status: "SCHEDULED",
|
|
1889
|
-
updatedAt: "2026-06-
|
|
2062
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1890
2063
|
},
|
|
1891
2064
|
{
|
|
1892
2065
|
id: "760482",
|
|
@@ -1907,7 +2080,7 @@ var schedule_2026_default = [
|
|
|
1907
2080
|
flag: "\u{1F1FA}\u{1F1FF}"
|
|
1908
2081
|
},
|
|
1909
2082
|
status: "SCHEDULED",
|
|
1910
|
-
updatedAt: "2026-06-
|
|
2083
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1911
2084
|
},
|
|
1912
2085
|
{
|
|
1913
2086
|
id: "760484",
|
|
@@ -1928,7 +2101,7 @@ var schedule_2026_default = [
|
|
|
1928
2101
|
flag: "\u{1F1E6}\u{1F1F9}"
|
|
1929
2102
|
},
|
|
1930
2103
|
status: "SCHEDULED",
|
|
1931
|
-
updatedAt: "2026-06-
|
|
2104
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1932
2105
|
},
|
|
1933
2106
|
{
|
|
1934
2107
|
id: "760483",
|
|
@@ -1949,7 +2122,7 @@ var schedule_2026_default = [
|
|
|
1949
2122
|
flag: "\u{1F1E6}\u{1F1F7}"
|
|
1950
2123
|
},
|
|
1951
2124
|
status: "SCHEDULED",
|
|
1952
|
-
updatedAt: "2026-06-
|
|
2125
|
+
updatedAt: "2026-06-24T01:20:06.523Z"
|
|
1953
2126
|
},
|
|
1954
2127
|
{
|
|
1955
2128
|
id: "760486",
|
|
@@ -1969,7 +2142,7 @@ var schedule_2026_default = [
|
|
|
1969
2142
|
flag: "\u{1F3F3}\uFE0F"
|
|
1970
2143
|
},
|
|
1971
2144
|
status: "SCHEDULED",
|
|
1972
|
-
updatedAt: "2026-06-
|
|
2145
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
1973
2146
|
},
|
|
1974
2147
|
{
|
|
1975
2148
|
id: "760487",
|
|
@@ -1989,7 +2162,7 @@ var schedule_2026_default = [
|
|
|
1989
2162
|
flag: "\u{1F3F3}\uFE0F"
|
|
1990
2163
|
},
|
|
1991
2164
|
status: "SCHEDULED",
|
|
1992
|
-
updatedAt: "2026-06-
|
|
2165
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
1993
2166
|
},
|
|
1994
2167
|
{
|
|
1995
2168
|
id: "760489",
|
|
@@ -1999,8 +2172,8 @@ var schedule_2026_default = [
|
|
|
1999
2172
|
city: "Foxborough, Massachusetts",
|
|
2000
2173
|
country: "USA",
|
|
2001
2174
|
home: {
|
|
2002
|
-
code: "
|
|
2003
|
-
name: "
|
|
2175
|
+
code: "TBD",
|
|
2176
|
+
name: "Germany",
|
|
2004
2177
|
flag: "\u{1F3F3}\uFE0F"
|
|
2005
2178
|
},
|
|
2006
2179
|
away: {
|
|
@@ -2009,7 +2182,7 @@ var schedule_2026_default = [
|
|
|
2009
2182
|
flag: "\u{1F3F3}\uFE0F"
|
|
2010
2183
|
},
|
|
2011
2184
|
status: "SCHEDULED",
|
|
2012
|
-
updatedAt: "2026-06-
|
|
2185
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2013
2186
|
},
|
|
2014
2187
|
{
|
|
2015
2188
|
id: "760488",
|
|
@@ -2029,7 +2202,7 @@ var schedule_2026_default = [
|
|
|
2029
2202
|
flag: "\u{1F3F3}\uFE0F"
|
|
2030
2203
|
},
|
|
2031
2204
|
status: "SCHEDULED",
|
|
2032
|
-
updatedAt: "2026-06-
|
|
2205
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2033
2206
|
},
|
|
2034
2207
|
{
|
|
2035
2208
|
id: "760490",
|
|
@@ -2049,7 +2222,7 @@ var schedule_2026_default = [
|
|
|
2049
2222
|
flag: "\u{1F3F3}\uFE0F"
|
|
2050
2223
|
},
|
|
2051
2224
|
status: "SCHEDULED",
|
|
2052
|
-
updatedAt: "2026-06-
|
|
2225
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2053
2226
|
},
|
|
2054
2227
|
{
|
|
2055
2228
|
id: "760492",
|
|
@@ -2069,7 +2242,7 @@ var schedule_2026_default = [
|
|
|
2069
2242
|
flag: "\u{1F3F3}\uFE0F"
|
|
2070
2243
|
},
|
|
2071
2244
|
status: "SCHEDULED",
|
|
2072
|
-
updatedAt: "2026-06-
|
|
2245
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2073
2246
|
},
|
|
2074
2247
|
{
|
|
2075
2248
|
id: "760491",
|
|
@@ -2079,8 +2252,8 @@ var schedule_2026_default = [
|
|
|
2079
2252
|
city: "Mexico City",
|
|
2080
2253
|
country: "Mexico",
|
|
2081
2254
|
home: {
|
|
2082
|
-
code: "
|
|
2083
|
-
name: "
|
|
2255
|
+
code: "TBD",
|
|
2256
|
+
name: "Mexico",
|
|
2084
2257
|
flag: "\u{1F3F3}\uFE0F"
|
|
2085
2258
|
},
|
|
2086
2259
|
away: {
|
|
@@ -2089,7 +2262,7 @@ var schedule_2026_default = [
|
|
|
2089
2262
|
flag: "\u{1F3F3}\uFE0F"
|
|
2090
2263
|
},
|
|
2091
2264
|
status: "SCHEDULED",
|
|
2092
|
-
updatedAt: "2026-06-
|
|
2265
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2093
2266
|
},
|
|
2094
2267
|
{
|
|
2095
2268
|
id: "760495",
|
|
@@ -2109,7 +2282,7 @@ var schedule_2026_default = [
|
|
|
2109
2282
|
flag: "\u{1F3F3}\uFE0F"
|
|
2110
2283
|
},
|
|
2111
2284
|
status: "SCHEDULED",
|
|
2112
|
-
updatedAt: "2026-06-
|
|
2285
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2113
2286
|
},
|
|
2114
2287
|
{
|
|
2115
2288
|
id: "760493",
|
|
@@ -2129,7 +2302,7 @@ var schedule_2026_default = [
|
|
|
2129
2302
|
flag: "\u{1F3F3}\uFE0F"
|
|
2130
2303
|
},
|
|
2131
2304
|
status: "SCHEDULED",
|
|
2132
|
-
updatedAt: "2026-06-
|
|
2305
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2133
2306
|
},
|
|
2134
2307
|
{
|
|
2135
2308
|
id: "760494",
|
|
@@ -2139,8 +2312,8 @@ var schedule_2026_default = [
|
|
|
2139
2312
|
city: "Santa Clara, California",
|
|
2140
2313
|
country: "USA",
|
|
2141
2314
|
home: {
|
|
2142
|
-
code: "
|
|
2143
|
-
name: "
|
|
2315
|
+
code: "TBD",
|
|
2316
|
+
name: "United States",
|
|
2144
2317
|
flag: "\u{1F3F3}\uFE0F"
|
|
2145
2318
|
},
|
|
2146
2319
|
away: {
|
|
@@ -2149,7 +2322,7 @@ var schedule_2026_default = [
|
|
|
2149
2322
|
flag: "\u{1F3F3}\uFE0F"
|
|
2150
2323
|
},
|
|
2151
2324
|
status: "SCHEDULED",
|
|
2152
|
-
updatedAt: "2026-06-
|
|
2325
|
+
updatedAt: "2026-06-24T01:20:06.529Z"
|
|
2153
2326
|
},
|
|
2154
2327
|
{
|
|
2155
2328
|
id: "760497",
|
|
@@ -2169,7 +2342,7 @@ var schedule_2026_default = [
|
|
|
2169
2342
|
flag: "\u{1F3F3}\uFE0F"
|
|
2170
2343
|
},
|
|
2171
2344
|
status: "SCHEDULED",
|
|
2172
|
-
updatedAt: "2026-06-
|
|
2345
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2173
2346
|
},
|
|
2174
2347
|
{
|
|
2175
2348
|
id: "760496",
|
|
@@ -2189,7 +2362,7 @@ var schedule_2026_default = [
|
|
|
2189
2362
|
flag: "\u{1F3F3}\uFE0F"
|
|
2190
2363
|
},
|
|
2191
2364
|
status: "SCHEDULED",
|
|
2192
|
-
updatedAt: "2026-06-
|
|
2365
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2193
2366
|
},
|
|
2194
2367
|
{
|
|
2195
2368
|
id: "760498",
|
|
@@ -2209,7 +2382,7 @@ var schedule_2026_default = [
|
|
|
2209
2382
|
flag: "\u{1F3F3}\uFE0F"
|
|
2210
2383
|
},
|
|
2211
2384
|
status: "SCHEDULED",
|
|
2212
|
-
updatedAt: "2026-06-
|
|
2385
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2213
2386
|
},
|
|
2214
2387
|
{
|
|
2215
2388
|
id: "760499",
|
|
@@ -2229,7 +2402,7 @@ var schedule_2026_default = [
|
|
|
2229
2402
|
flag: "\u{1F3F3}\uFE0F"
|
|
2230
2403
|
},
|
|
2231
2404
|
status: "SCHEDULED",
|
|
2232
|
-
updatedAt: "2026-06-
|
|
2405
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2233
2406
|
},
|
|
2234
2407
|
{
|
|
2235
2408
|
id: "760500",
|
|
@@ -2239,8 +2412,8 @@ var schedule_2026_default = [
|
|
|
2239
2412
|
city: "Miami Gardens, Florida",
|
|
2240
2413
|
country: "USA",
|
|
2241
2414
|
home: {
|
|
2242
|
-
code: "
|
|
2243
|
-
name: "
|
|
2415
|
+
code: "TBD",
|
|
2416
|
+
name: "Argentina",
|
|
2244
2417
|
flag: "\u{1F3F3}\uFE0F"
|
|
2245
2418
|
},
|
|
2246
2419
|
away: {
|
|
@@ -2249,7 +2422,7 @@ var schedule_2026_default = [
|
|
|
2249
2422
|
flag: "\u{1F3F3}\uFE0F"
|
|
2250
2423
|
},
|
|
2251
2424
|
status: "SCHEDULED",
|
|
2252
|
-
updatedAt: "2026-06-
|
|
2425
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2253
2426
|
},
|
|
2254
2427
|
{
|
|
2255
2428
|
id: "760501",
|
|
@@ -2269,7 +2442,7 @@ var schedule_2026_default = [
|
|
|
2269
2442
|
flag: "\u{1F3F3}\uFE0F"
|
|
2270
2443
|
},
|
|
2271
2444
|
status: "SCHEDULED",
|
|
2272
|
-
updatedAt: "2026-06-
|
|
2445
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2273
2446
|
},
|
|
2274
2447
|
{
|
|
2275
2448
|
id: "760502",
|
|
@@ -2289,7 +2462,7 @@ var schedule_2026_default = [
|
|
|
2289
2462
|
flag: "\u{1F3F3}\uFE0F"
|
|
2290
2463
|
},
|
|
2291
2464
|
status: "SCHEDULED",
|
|
2292
|
-
updatedAt: "2026-06-
|
|
2465
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2293
2466
|
},
|
|
2294
2467
|
{
|
|
2295
2468
|
id: "760503",
|
|
@@ -2309,7 +2482,7 @@ var schedule_2026_default = [
|
|
|
2309
2482
|
flag: "\u{1F3F3}\uFE0F"
|
|
2310
2483
|
},
|
|
2311
2484
|
status: "SCHEDULED",
|
|
2312
|
-
updatedAt: "2026-06-
|
|
2485
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2313
2486
|
},
|
|
2314
2487
|
{
|
|
2315
2488
|
id: "760504",
|
|
@@ -2329,7 +2502,7 @@ var schedule_2026_default = [
|
|
|
2329
2502
|
flag: "\u{1F3F3}\uFE0F"
|
|
2330
2503
|
},
|
|
2331
2504
|
status: "SCHEDULED",
|
|
2332
|
-
updatedAt: "2026-06-
|
|
2505
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2333
2506
|
},
|
|
2334
2507
|
{
|
|
2335
2508
|
id: "760505",
|
|
@@ -2349,7 +2522,7 @@ var schedule_2026_default = [
|
|
|
2349
2522
|
flag: "\u{1F3F3}\uFE0F"
|
|
2350
2523
|
},
|
|
2351
2524
|
status: "SCHEDULED",
|
|
2352
|
-
updatedAt: "2026-06-
|
|
2525
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2353
2526
|
},
|
|
2354
2527
|
{
|
|
2355
2528
|
id: "760506",
|
|
@@ -2369,7 +2542,7 @@ var schedule_2026_default = [
|
|
|
2369
2542
|
flag: "\u{1F3F3}\uFE0F"
|
|
2370
2543
|
},
|
|
2371
2544
|
status: "SCHEDULED",
|
|
2372
|
-
updatedAt: "2026-06-
|
|
2545
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2373
2546
|
},
|
|
2374
2547
|
{
|
|
2375
2548
|
id: "760507",
|
|
@@ -2389,7 +2562,7 @@ var schedule_2026_default = [
|
|
|
2389
2562
|
flag: "\u{1F3F3}\uFE0F"
|
|
2390
2563
|
},
|
|
2391
2564
|
status: "SCHEDULED",
|
|
2392
|
-
updatedAt: "2026-06-
|
|
2565
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2393
2566
|
},
|
|
2394
2567
|
{
|
|
2395
2568
|
id: "760509",
|
|
@@ -2409,7 +2582,7 @@ var schedule_2026_default = [
|
|
|
2409
2582
|
flag: "\u{1F3F3}\uFE0F"
|
|
2410
2583
|
},
|
|
2411
2584
|
status: "SCHEDULED",
|
|
2412
|
-
updatedAt: "2026-06-
|
|
2585
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2413
2586
|
},
|
|
2414
2587
|
{
|
|
2415
2588
|
id: "760508",
|
|
@@ -2429,7 +2602,7 @@ var schedule_2026_default = [
|
|
|
2429
2602
|
flag: "\u{1F3F3}\uFE0F"
|
|
2430
2603
|
},
|
|
2431
2604
|
status: "SCHEDULED",
|
|
2432
|
-
updatedAt: "2026-06-
|
|
2605
|
+
updatedAt: "2026-06-24T01:20:06.593Z"
|
|
2433
2606
|
},
|
|
2434
2607
|
{
|
|
2435
2608
|
id: "760510",
|
|
@@ -2439,17 +2612,17 @@ var schedule_2026_default = [
|
|
|
2439
2612
|
city: "Foxborough, Massachusetts",
|
|
2440
2613
|
country: "USA",
|
|
2441
2614
|
home: {
|
|
2442
|
-
code: "
|
|
2615
|
+
code: "RD32",
|
|
2443
2616
|
name: "Round of 16 1 Winner",
|
|
2444
2617
|
flag: "\u{1F3F3}\uFE0F"
|
|
2445
2618
|
},
|
|
2446
2619
|
away: {
|
|
2447
|
-
code: "
|
|
2620
|
+
code: "RD32",
|
|
2448
2621
|
name: "Round of 16 2 Winner",
|
|
2449
2622
|
flag: "\u{1F3F3}\uFE0F"
|
|
2450
2623
|
},
|
|
2451
2624
|
status: "SCHEDULED",
|
|
2452
|
-
updatedAt: "2026-06-
|
|
2625
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2453
2626
|
},
|
|
2454
2627
|
{
|
|
2455
2628
|
id: "760511",
|
|
@@ -2459,17 +2632,17 @@ var schedule_2026_default = [
|
|
|
2459
2632
|
city: "Inglewood, California",
|
|
2460
2633
|
country: "USA",
|
|
2461
2634
|
home: {
|
|
2462
|
-
code: "
|
|
2635
|
+
code: "RD32",
|
|
2463
2636
|
name: "Round of 16 5 Winner",
|
|
2464
2637
|
flag: "\u{1F3F3}\uFE0F"
|
|
2465
2638
|
},
|
|
2466
2639
|
away: {
|
|
2467
|
-
code: "
|
|
2640
|
+
code: "RD32",
|
|
2468
2641
|
name: "Round of 16 6 Winner",
|
|
2469
2642
|
flag: "\u{1F3F3}\uFE0F"
|
|
2470
2643
|
},
|
|
2471
2644
|
status: "SCHEDULED",
|
|
2472
|
-
updatedAt: "2026-06-
|
|
2645
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2473
2646
|
},
|
|
2474
2647
|
{
|
|
2475
2648
|
id: "760512",
|
|
@@ -2479,17 +2652,17 @@ var schedule_2026_default = [
|
|
|
2479
2652
|
city: "Miami Gardens, Florida",
|
|
2480
2653
|
country: "USA",
|
|
2481
2654
|
home: {
|
|
2482
|
-
code: "
|
|
2655
|
+
code: "RD32",
|
|
2483
2656
|
name: "Round of 16 3 Winner",
|
|
2484
2657
|
flag: "\u{1F3F3}\uFE0F"
|
|
2485
2658
|
},
|
|
2486
2659
|
away: {
|
|
2487
|
-
code: "
|
|
2660
|
+
code: "RD32",
|
|
2488
2661
|
name: "Round of 16 4 Winner",
|
|
2489
2662
|
flag: "\u{1F3F3}\uFE0F"
|
|
2490
2663
|
},
|
|
2491
2664
|
status: "SCHEDULED",
|
|
2492
|
-
updatedAt: "2026-06-
|
|
2665
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2493
2666
|
},
|
|
2494
2667
|
{
|
|
2495
2668
|
id: "760513",
|
|
@@ -2499,17 +2672,17 @@ var schedule_2026_default = [
|
|
|
2499
2672
|
city: "Kansas City, Missouri",
|
|
2500
2673
|
country: "USA",
|
|
2501
2674
|
home: {
|
|
2502
|
-
code: "
|
|
2675
|
+
code: "RD32",
|
|
2503
2676
|
name: "Round of 16 7 Winner",
|
|
2504
2677
|
flag: "\u{1F3F3}\uFE0F"
|
|
2505
2678
|
},
|
|
2506
2679
|
away: {
|
|
2507
|
-
code: "
|
|
2680
|
+
code: "RD32",
|
|
2508
2681
|
name: "Round of 16 8 Winner",
|
|
2509
2682
|
flag: "\u{1F3F3}\uFE0F"
|
|
2510
2683
|
},
|
|
2511
2684
|
status: "SCHEDULED",
|
|
2512
|
-
updatedAt: "2026-06-
|
|
2685
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2513
2686
|
},
|
|
2514
2687
|
{
|
|
2515
2688
|
id: "760514",
|
|
@@ -2519,17 +2692,17 @@ var schedule_2026_default = [
|
|
|
2519
2692
|
city: "Arlington, Texas",
|
|
2520
2693
|
country: "USA",
|
|
2521
2694
|
home: {
|
|
2522
|
-
code: "
|
|
2695
|
+
code: "RD32",
|
|
2523
2696
|
name: "Quarterfinal 1 Winner",
|
|
2524
2697
|
flag: "\u{1F3F3}\uFE0F"
|
|
2525
2698
|
},
|
|
2526
2699
|
away: {
|
|
2527
|
-
code: "
|
|
2700
|
+
code: "RD32",
|
|
2528
2701
|
name: "Quarterfinal 2 Winner",
|
|
2529
2702
|
flag: "\u{1F3F3}\uFE0F"
|
|
2530
2703
|
},
|
|
2531
2704
|
status: "SCHEDULED",
|
|
2532
|
-
updatedAt: "2026-06-
|
|
2705
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2533
2706
|
},
|
|
2534
2707
|
{
|
|
2535
2708
|
id: "760515",
|
|
@@ -2539,17 +2712,17 @@ var schedule_2026_default = [
|
|
|
2539
2712
|
city: "Atlanta, Georgia",
|
|
2540
2713
|
country: "USA",
|
|
2541
2714
|
home: {
|
|
2542
|
-
code: "
|
|
2715
|
+
code: "RD32",
|
|
2543
2716
|
name: "Quarterfinal 3 Winner",
|
|
2544
2717
|
flag: "\u{1F3F3}\uFE0F"
|
|
2545
2718
|
},
|
|
2546
2719
|
away: {
|
|
2547
|
-
code: "
|
|
2720
|
+
code: "RD32",
|
|
2548
2721
|
name: "Quarterfinal 4 Winner",
|
|
2549
2722
|
flag: "\u{1F3F3}\uFE0F"
|
|
2550
2723
|
},
|
|
2551
2724
|
status: "SCHEDULED",
|
|
2552
|
-
updatedAt: "2026-06-
|
|
2725
|
+
updatedAt: "2026-06-24T01:20:06.650Z"
|
|
2553
2726
|
},
|
|
2554
2727
|
{
|
|
2555
2728
|
id: "760516",
|
|
@@ -2559,17 +2732,17 @@ var schedule_2026_default = [
|
|
|
2559
2732
|
city: "Miami Gardens, Florida",
|
|
2560
2733
|
country: "USA",
|
|
2561
2734
|
home: {
|
|
2562
|
-
code: "
|
|
2735
|
+
code: "RD32",
|
|
2563
2736
|
name: "Semifinal 1 Loser",
|
|
2564
2737
|
flag: "\u{1F3F3}\uFE0F"
|
|
2565
2738
|
},
|
|
2566
2739
|
away: {
|
|
2567
|
-
code: "
|
|
2740
|
+
code: "RD32",
|
|
2568
2741
|
name: "Semifinal 2 Loser",
|
|
2569
2742
|
flag: "\u{1F3F3}\uFE0F"
|
|
2570
2743
|
},
|
|
2571
2744
|
status: "SCHEDULED",
|
|
2572
|
-
updatedAt: "2026-06-
|
|
2745
|
+
updatedAt: "2026-06-24T01:20:06.749Z"
|
|
2573
2746
|
},
|
|
2574
2747
|
{
|
|
2575
2748
|
id: "760517",
|
|
@@ -2579,17 +2752,17 @@ var schedule_2026_default = [
|
|
|
2579
2752
|
city: "East Rutherford, New Jersey",
|
|
2580
2753
|
country: "USA",
|
|
2581
2754
|
home: {
|
|
2582
|
-
code: "
|
|
2755
|
+
code: "RD32",
|
|
2583
2756
|
name: "Semifinal 1 Winner",
|
|
2584
2757
|
flag: "\u{1F3F3}\uFE0F"
|
|
2585
2758
|
},
|
|
2586
2759
|
away: {
|
|
2587
|
-
code: "
|
|
2760
|
+
code: "RD32",
|
|
2588
2761
|
name: "Semifinal 2 Winner",
|
|
2589
2762
|
flag: "\u{1F3F3}\uFE0F"
|
|
2590
2763
|
},
|
|
2591
2764
|
status: "SCHEDULED",
|
|
2592
|
-
updatedAt: "2026-06-
|
|
2765
|
+
updatedAt: "2026-06-24T01:20:06.749Z"
|
|
2593
2766
|
}
|
|
2594
2767
|
];
|
|
2595
2768
|
var SCHEDULE = schedule_2026_default;
|
|
@@ -2633,46 +2806,13 @@ function blankRow(team) {
|
|
|
2633
2806
|
points: 0
|
|
2634
2807
|
};
|
|
2635
2808
|
}
|
|
2636
|
-
function
|
|
2637
|
-
const
|
|
2638
|
-
const ensure = (t) => {
|
|
2639
|
-
let r = rows.get(t.code);
|
|
2640
|
-
if (!r) {
|
|
2641
|
-
r = blankRow(t);
|
|
2642
|
-
rows.set(t.code, r);
|
|
2643
|
-
}
|
|
2644
|
-
return r;
|
|
2645
|
-
};
|
|
2809
|
+
function rosterAtZero(matches) {
|
|
2810
|
+
const teams = /* @__PURE__ */ new Map();
|
|
2646
2811
|
for (const m of matches) {
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
if (!isFinished(m.status) || !m.score) continue;
|
|
2650
|
-
const { home: hg, away: ag } = m.score;
|
|
2651
|
-
home.played++;
|
|
2652
|
-
away.played++;
|
|
2653
|
-
home.goalsFor += hg;
|
|
2654
|
-
home.goalsAgainst += ag;
|
|
2655
|
-
away.goalsFor += ag;
|
|
2656
|
-
away.goalsAgainst += hg;
|
|
2657
|
-
if (hg > ag) {
|
|
2658
|
-
home.won++;
|
|
2659
|
-
away.lost++;
|
|
2660
|
-
home.points += 3;
|
|
2661
|
-
} else if (hg < ag) {
|
|
2662
|
-
away.won++;
|
|
2663
|
-
home.lost++;
|
|
2664
|
-
away.points += 3;
|
|
2665
|
-
} else {
|
|
2666
|
-
home.drawn++;
|
|
2667
|
-
away.drawn++;
|
|
2668
|
-
home.points++;
|
|
2669
|
-
away.points++;
|
|
2670
|
-
}
|
|
2812
|
+
teams.set(m.home.code, m.home);
|
|
2813
|
+
teams.set(m.away.code, m.away);
|
|
2671
2814
|
}
|
|
2672
|
-
|
|
2673
|
-
return [...rows.values()].sort(
|
|
2674
|
-
(a, b) => b.points - a.points || b.goalDiff - a.goalDiff || b.goalsFor - a.goalsFor || a.team.name.localeCompare(b.team.name)
|
|
2675
|
-
);
|
|
2815
|
+
return [...teams.values()].sort((a, b) => a.name.localeCompare(b.name)).map(blankRow);
|
|
2676
2816
|
}
|
|
2677
2817
|
var ESPN_SOCCER = "https://site.api.espn.com/apis/site/v2/sports/soccer";
|
|
2678
2818
|
var DEFAULT_COMPETITION = "fifa.world";
|
|
@@ -2720,10 +2860,10 @@ function toInt(s) {
|
|
|
2720
2860
|
const n = parseInt(s, 10);
|
|
2721
2861
|
return Number.isFinite(n) ? n : void 0;
|
|
2722
2862
|
}
|
|
2723
|
-
function toTeam(
|
|
2724
|
-
const name =
|
|
2725
|
-
const code = (
|
|
2726
|
-
return { code, name, flag: nationToFlag(
|
|
2863
|
+
function toTeam(t2) {
|
|
2864
|
+
const name = t2?.displayName ?? t2?.name ?? t2?.location ?? t2?.shortDisplayName ?? "TBD";
|
|
2865
|
+
const code = (t2?.abbreviation ?? name.slice(0, 3)).toUpperCase();
|
|
2866
|
+
return { code, name, flag: nationToFlag(t2?.displayName ?? t2?.abbreviation ?? name) };
|
|
2727
2867
|
}
|
|
2728
2868
|
function mapEspnEvent(ev, ctx = {}) {
|
|
2729
2869
|
const comp = ev.competitions?.[0];
|
|
@@ -2741,6 +2881,11 @@ function mapEspnEvent(ev, ctx = {}) {
|
|
|
2741
2881
|
const hs = toInt(homeC?.score);
|
|
2742
2882
|
const as = toInt(awayC?.score);
|
|
2743
2883
|
const hasScore = status !== "SCHEDULED" && hs !== void 0 && as !== void 0;
|
|
2884
|
+
let winnerCode;
|
|
2885
|
+
if (isFinished(status)) {
|
|
2886
|
+
if (homeC?.winner) winnerCode = home.code;
|
|
2887
|
+
else if (awayC?.winner) winnerCode = away.code;
|
|
2888
|
+
}
|
|
2744
2889
|
return {
|
|
2745
2890
|
id: ev.id,
|
|
2746
2891
|
stage,
|
|
@@ -2754,6 +2899,7 @@ function mapEspnEvent(ev, ctx = {}) {
|
|
|
2754
2899
|
score: hasScore ? { home: hs, away: as } : void 0,
|
|
2755
2900
|
minute: parseMinute(ev.status ?? comp?.status),
|
|
2756
2901
|
status,
|
|
2902
|
+
winnerCode,
|
|
2757
2903
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2758
2904
|
};
|
|
2759
2905
|
}
|
|
@@ -2845,7 +2991,7 @@ var EspnAdapter = class {
|
|
|
2845
2991
|
const map = {};
|
|
2846
2992
|
try {
|
|
2847
2993
|
const tables = parseStandings(await this.get(this.standingsUrl()));
|
|
2848
|
-
for (const
|
|
2994
|
+
for (const t2 of tables) for (const r of t2.rows) map[r.team.code] = t2.group;
|
|
2849
2995
|
} catch {
|
|
2850
2996
|
}
|
|
2851
2997
|
this.groupMap = map;
|
|
@@ -2881,6 +3027,688 @@ var EspnAdapter = class {
|
|
|
2881
3027
|
}
|
|
2882
3028
|
}
|
|
2883
3029
|
};
|
|
3030
|
+
function teamFromMatch(match, code) {
|
|
3031
|
+
if (match.home.code === code) return match.home;
|
|
3032
|
+
if (match.away.code === code) return match.away;
|
|
3033
|
+
return void 0;
|
|
3034
|
+
}
|
|
3035
|
+
function matchKey(stage, index) {
|
|
3036
|
+
return `${stage}:${index}`;
|
|
3037
|
+
}
|
|
3038
|
+
function isGroupComplete(group, tables, standingsDegraded) {
|
|
3039
|
+
if (standingsDegraded) return false;
|
|
3040
|
+
const table = tables.find((t2) => t2.group === group);
|
|
3041
|
+
if (!table?.rows.length || table.rows.length !== 4) return false;
|
|
3042
|
+
return table.rows.every((r) => r.played >= 3);
|
|
3043
|
+
}
|
|
3044
|
+
function teamFromStandings(group, position, tables) {
|
|
3045
|
+
const table = tables.find((t2) => t2.group === group);
|
|
3046
|
+
if (!table) return void 0;
|
|
3047
|
+
const row = table.rows[position - 1];
|
|
3048
|
+
return row?.team;
|
|
3049
|
+
}
|
|
3050
|
+
function resolveWinner(match) {
|
|
3051
|
+
if (!isFinished(match.status)) return void 0;
|
|
3052
|
+
if (match.winnerCode) {
|
|
3053
|
+
const w = teamFromMatch(match, match.winnerCode);
|
|
3054
|
+
if (w && w.flag !== "\u{1F3F3}\uFE0F") return w;
|
|
3055
|
+
}
|
|
3056
|
+
if (!match.score) return void 0;
|
|
3057
|
+
const outcome = outcomeFromScore(match.score.home, match.score.away);
|
|
3058
|
+
if (outcome === "H") return match.home.flag !== "\u{1F3F3}\uFE0F" ? match.home : void 0;
|
|
3059
|
+
if (outcome === "A") return match.away.flag !== "\u{1F3F3}\uFE0F" ? match.away : void 0;
|
|
3060
|
+
return void 0;
|
|
3061
|
+
}
|
|
3062
|
+
function resolveLoser(match) {
|
|
3063
|
+
if (!isFinished(match.status)) return void 0;
|
|
3064
|
+
if (match.winnerCode) {
|
|
3065
|
+
const winner = teamFromMatch(match, match.winnerCode);
|
|
3066
|
+
if (winner?.code === match.home.code) {
|
|
3067
|
+
return match.away.flag !== "\u{1F3F3}\uFE0F" ? match.away : void 0;
|
|
3068
|
+
}
|
|
3069
|
+
if (winner?.code === match.away.code) {
|
|
3070
|
+
return match.home.flag !== "\u{1F3F3}\uFE0F" ? match.home : void 0;
|
|
3071
|
+
}
|
|
3072
|
+
}
|
|
3073
|
+
if (!match.score) return void 0;
|
|
3074
|
+
const outcome = outcomeFromScore(match.score.home, match.score.away);
|
|
3075
|
+
if (outcome === "H") return match.away.flag !== "\u{1F3F3}\uFE0F" ? match.away : void 0;
|
|
3076
|
+
if (outcome === "A") return match.home.flag !== "\u{1F3F3}\uFE0F" ? match.home : void 0;
|
|
3077
|
+
return void 0;
|
|
3078
|
+
}
|
|
3079
|
+
function participant(team, status) {
|
|
3080
|
+
return { label: team.name, flag: team.flag, code: team.code, status };
|
|
3081
|
+
}
|
|
3082
|
+
function tbd(label) {
|
|
3083
|
+
return { label, flag: "\u{1F3F3}\uFE0F", status: "tbd" };
|
|
3084
|
+
}
|
|
3085
|
+
function winnerLabel(ctx, stage, index) {
|
|
3086
|
+
return t(ctx.lang, "bracket.slot.winner", {
|
|
3087
|
+
stage: stageLabelI18n(ctx.lang, stage),
|
|
3088
|
+
n: String(index)
|
|
3089
|
+
});
|
|
3090
|
+
}
|
|
3091
|
+
function resolveSlot(ref, ctx) {
|
|
3092
|
+
switch (ref.kind) {
|
|
3093
|
+
case "seed":
|
|
3094
|
+
return tbd(ref.label);
|
|
3095
|
+
case "group": {
|
|
3096
|
+
if (isGroupComplete(ref.group, ctx.tables, ctx.standingsDegraded)) {
|
|
3097
|
+
const team = teamFromStandings(ref.group, ref.position, ctx.tables);
|
|
3098
|
+
if (team) return participant(team, "projected");
|
|
3099
|
+
}
|
|
3100
|
+
const label = ref.position === 1 ? t(ctx.lang, "bracket.slot.groupWinner", { group: ref.group }) : t(ctx.lang, "bracket.slot.groupSecond", { group: ref.group });
|
|
3101
|
+
return tbd(label);
|
|
3102
|
+
}
|
|
3103
|
+
case "third":
|
|
3104
|
+
return tbd(t(ctx.lang, "bracket.slot.third", { groups: ref.groups.join("/") }));
|
|
3105
|
+
case "winner": {
|
|
3106
|
+
const node = ctx.nodesByKey.get(matchKey(ref.stage, ref.index));
|
|
3107
|
+
const match = node ? ctx.matchesById.get(node.matchId) : void 0;
|
|
3108
|
+
if (match) {
|
|
3109
|
+
const winner = resolveWinner(match);
|
|
3110
|
+
if (winner) return participant(winner, "confirmed");
|
|
3111
|
+
}
|
|
3112
|
+
return tbd(winnerLabel(ctx, ref.stage, ref.index));
|
|
3113
|
+
}
|
|
3114
|
+
case "loser": {
|
|
3115
|
+
const node = ctx.nodesByKey.get(matchKey(ref.stage, ref.index));
|
|
3116
|
+
const match = node ? ctx.matchesById.get(node.matchId) : void 0;
|
|
3117
|
+
if (match) {
|
|
3118
|
+
const loser = resolveLoser(match);
|
|
3119
|
+
if (loser) return participant(loser, "confirmed");
|
|
3120
|
+
}
|
|
3121
|
+
return tbd(
|
|
3122
|
+
t(ctx.lang, "bracket.slot.loser", {
|
|
3123
|
+
stage: stageLabelI18n(ctx.lang, ref.stage),
|
|
3124
|
+
n: String(ref.index)
|
|
3125
|
+
})
|
|
3126
|
+
);
|
|
3127
|
+
}
|
|
3128
|
+
default:
|
|
3129
|
+
return tbd(t(ctx.lang, "bracket.slot.tbd"));
|
|
3130
|
+
}
|
|
3131
|
+
}
|
|
3132
|
+
function buildBracketView(topology, matches, tables, standingsDegraded, liveDegraded, filterStage, lang) {
|
|
3133
|
+
const knockout = matches.filter((m) => m.stage !== "GROUP" && m.stage !== "FRIENDLY");
|
|
3134
|
+
const matchesById = new Map(knockout.map((m) => [m.id, m]));
|
|
3135
|
+
const nodesByKey = new Map(topology.matches.map((n) => [matchKey(n.stage, n.index), n]));
|
|
3136
|
+
const ctx = { nodesByKey, matchesById, tables, standingsDegraded, lang };
|
|
3137
|
+
const want = filterStage?.toUpperCase();
|
|
3138
|
+
const stages = [];
|
|
3139
|
+
for (const stage of topology.stages) {
|
|
3140
|
+
if (want && stage !== want) continue;
|
|
3141
|
+
const nodes = topology.matches.filter((n) => n.stage === stage);
|
|
3142
|
+
const matchViews = nodes.map((node) => {
|
|
3143
|
+
const match = matchesById.get(node.matchId) ?? {
|
|
3144
|
+
id: node.matchId,
|
|
3145
|
+
stage: node.stage,
|
|
3146
|
+
kickoff: "",
|
|
3147
|
+
venue: "",
|
|
3148
|
+
home: { code: "?", name: "TBD", flag: "\u{1F3F3}\uFE0F" },
|
|
3149
|
+
away: { code: "?", name: "TBD", flag: "\u{1F3F3}\uFE0F" },
|
|
3150
|
+
status: "SCHEDULED",
|
|
3151
|
+
updatedAt: ""
|
|
3152
|
+
};
|
|
3153
|
+
return {
|
|
3154
|
+
matchId: node.matchId,
|
|
3155
|
+
stage: node.stage,
|
|
3156
|
+
index: node.index,
|
|
3157
|
+
kickoff: match.kickoff,
|
|
3158
|
+
home: resolveSlot(node.home, ctx),
|
|
3159
|
+
away: resolveSlot(node.away, ctx),
|
|
3160
|
+
match
|
|
3161
|
+
};
|
|
3162
|
+
});
|
|
3163
|
+
stages.push({
|
|
3164
|
+
stage,
|
|
3165
|
+
label: stageLabelI18n(lang, stage),
|
|
3166
|
+
matches: matchViews
|
|
3167
|
+
});
|
|
3168
|
+
}
|
|
3169
|
+
return {
|
|
3170
|
+
stages,
|
|
3171
|
+
degraded: liveDegraded,
|
|
3172
|
+
standingsDegraded
|
|
3173
|
+
};
|
|
3174
|
+
}
|
|
3175
|
+
var bracket_2026_default = {
|
|
3176
|
+
generatedAt: "2026-06-24T01:20:06.749Z",
|
|
3177
|
+
stages: [
|
|
3178
|
+
"R32",
|
|
3179
|
+
"R16",
|
|
3180
|
+
"QF",
|
|
3181
|
+
"SF",
|
|
3182
|
+
"3P",
|
|
3183
|
+
"F"
|
|
3184
|
+
],
|
|
3185
|
+
matches: [
|
|
3186
|
+
{
|
|
3187
|
+
matchId: "760486",
|
|
3188
|
+
stage: "R32",
|
|
3189
|
+
index: 1,
|
|
3190
|
+
home: {
|
|
3191
|
+
kind: "group",
|
|
3192
|
+
position: 2,
|
|
3193
|
+
group: "A"
|
|
3194
|
+
},
|
|
3195
|
+
away: {
|
|
3196
|
+
kind: "group",
|
|
3197
|
+
position: 2,
|
|
3198
|
+
group: "B"
|
|
3199
|
+
}
|
|
3200
|
+
},
|
|
3201
|
+
{
|
|
3202
|
+
matchId: "760487",
|
|
3203
|
+
stage: "R32",
|
|
3204
|
+
index: 2,
|
|
3205
|
+
home: {
|
|
3206
|
+
kind: "group",
|
|
3207
|
+
position: 1,
|
|
3208
|
+
group: "C"
|
|
3209
|
+
},
|
|
3210
|
+
away: {
|
|
3211
|
+
kind: "group",
|
|
3212
|
+
position: 2,
|
|
3213
|
+
group: "F"
|
|
3214
|
+
}
|
|
3215
|
+
},
|
|
3216
|
+
{
|
|
3217
|
+
matchId: "760488",
|
|
3218
|
+
stage: "R32",
|
|
3219
|
+
index: 3,
|
|
3220
|
+
home: {
|
|
3221
|
+
kind: "group",
|
|
3222
|
+
position: 1,
|
|
3223
|
+
group: "F"
|
|
3224
|
+
},
|
|
3225
|
+
away: {
|
|
3226
|
+
kind: "group",
|
|
3227
|
+
position: 2,
|
|
3228
|
+
group: "C"
|
|
3229
|
+
}
|
|
3230
|
+
},
|
|
3231
|
+
{
|
|
3232
|
+
matchId: "760489",
|
|
3233
|
+
stage: "R32",
|
|
3234
|
+
index: 4,
|
|
3235
|
+
home: {
|
|
3236
|
+
kind: "seed",
|
|
3237
|
+
label: "Germany",
|
|
3238
|
+
code: "TBD"
|
|
3239
|
+
},
|
|
3240
|
+
away: {
|
|
3241
|
+
kind: "third",
|
|
3242
|
+
groups: [
|
|
3243
|
+
"A",
|
|
3244
|
+
"B",
|
|
3245
|
+
"C",
|
|
3246
|
+
"D",
|
|
3247
|
+
"F"
|
|
3248
|
+
]
|
|
3249
|
+
}
|
|
3250
|
+
},
|
|
3251
|
+
{
|
|
3252
|
+
matchId: "760490",
|
|
3253
|
+
stage: "R32",
|
|
3254
|
+
index: 5,
|
|
3255
|
+
home: {
|
|
3256
|
+
kind: "group",
|
|
3257
|
+
position: 2,
|
|
3258
|
+
group: "E"
|
|
3259
|
+
},
|
|
3260
|
+
away: {
|
|
3261
|
+
kind: "group",
|
|
3262
|
+
position: 2,
|
|
3263
|
+
group: "I"
|
|
3264
|
+
}
|
|
3265
|
+
},
|
|
3266
|
+
{
|
|
3267
|
+
matchId: "760491",
|
|
3268
|
+
stage: "R32",
|
|
3269
|
+
index: 6,
|
|
3270
|
+
home: {
|
|
3271
|
+
kind: "seed",
|
|
3272
|
+
label: "Mexico",
|
|
3273
|
+
code: "TBD"
|
|
3274
|
+
},
|
|
3275
|
+
away: {
|
|
3276
|
+
kind: "third",
|
|
3277
|
+
groups: [
|
|
3278
|
+
"C",
|
|
3279
|
+
"E",
|
|
3280
|
+
"F",
|
|
3281
|
+
"H",
|
|
3282
|
+
"I"
|
|
3283
|
+
]
|
|
3284
|
+
}
|
|
3285
|
+
},
|
|
3286
|
+
{
|
|
3287
|
+
matchId: "760492",
|
|
3288
|
+
stage: "R32",
|
|
3289
|
+
index: 7,
|
|
3290
|
+
home: {
|
|
3291
|
+
kind: "group",
|
|
3292
|
+
position: 1,
|
|
3293
|
+
group: "I"
|
|
3294
|
+
},
|
|
3295
|
+
away: {
|
|
3296
|
+
kind: "third",
|
|
3297
|
+
groups: [
|
|
3298
|
+
"C",
|
|
3299
|
+
"D",
|
|
3300
|
+
"F",
|
|
3301
|
+
"G",
|
|
3302
|
+
"H"
|
|
3303
|
+
]
|
|
3304
|
+
}
|
|
3305
|
+
},
|
|
3306
|
+
{
|
|
3307
|
+
matchId: "760493",
|
|
3308
|
+
stage: "R32",
|
|
3309
|
+
index: 8,
|
|
3310
|
+
home: {
|
|
3311
|
+
kind: "group",
|
|
3312
|
+
position: 1,
|
|
3313
|
+
group: "G"
|
|
3314
|
+
},
|
|
3315
|
+
away: {
|
|
3316
|
+
kind: "third",
|
|
3317
|
+
groups: [
|
|
3318
|
+
"A",
|
|
3319
|
+
"E",
|
|
3320
|
+
"H",
|
|
3321
|
+
"I",
|
|
3322
|
+
"J"
|
|
3323
|
+
]
|
|
3324
|
+
}
|
|
3325
|
+
},
|
|
3326
|
+
{
|
|
3327
|
+
matchId: "760494",
|
|
3328
|
+
stage: "R32",
|
|
3329
|
+
index: 9,
|
|
3330
|
+
home: {
|
|
3331
|
+
kind: "seed",
|
|
3332
|
+
label: "United States",
|
|
3333
|
+
code: "TBD"
|
|
3334
|
+
},
|
|
3335
|
+
away: {
|
|
3336
|
+
kind: "third",
|
|
3337
|
+
groups: [
|
|
3338
|
+
"B",
|
|
3339
|
+
"E",
|
|
3340
|
+
"F",
|
|
3341
|
+
"I",
|
|
3342
|
+
"J"
|
|
3343
|
+
]
|
|
3344
|
+
}
|
|
3345
|
+
},
|
|
3346
|
+
{
|
|
3347
|
+
matchId: "760495",
|
|
3348
|
+
stage: "R32",
|
|
3349
|
+
index: 10,
|
|
3350
|
+
home: {
|
|
3351
|
+
kind: "group",
|
|
3352
|
+
position: 1,
|
|
3353
|
+
group: "L"
|
|
3354
|
+
},
|
|
3355
|
+
away: {
|
|
3356
|
+
kind: "third",
|
|
3357
|
+
groups: [
|
|
3358
|
+
"E",
|
|
3359
|
+
"H",
|
|
3360
|
+
"I",
|
|
3361
|
+
"J",
|
|
3362
|
+
"K"
|
|
3363
|
+
]
|
|
3364
|
+
}
|
|
3365
|
+
},
|
|
3366
|
+
{
|
|
3367
|
+
matchId: "760496",
|
|
3368
|
+
stage: "R32",
|
|
3369
|
+
index: 11,
|
|
3370
|
+
home: {
|
|
3371
|
+
kind: "group",
|
|
3372
|
+
position: 2,
|
|
3373
|
+
group: "K"
|
|
3374
|
+
},
|
|
3375
|
+
away: {
|
|
3376
|
+
kind: "group",
|
|
3377
|
+
position: 2,
|
|
3378
|
+
group: "L"
|
|
3379
|
+
}
|
|
3380
|
+
},
|
|
3381
|
+
{
|
|
3382
|
+
matchId: "760497",
|
|
3383
|
+
stage: "R32",
|
|
3384
|
+
index: 12,
|
|
3385
|
+
home: {
|
|
3386
|
+
kind: "group",
|
|
3387
|
+
position: 1,
|
|
3388
|
+
group: "H"
|
|
3389
|
+
},
|
|
3390
|
+
away: {
|
|
3391
|
+
kind: "group",
|
|
3392
|
+
position: 2,
|
|
3393
|
+
group: "J"
|
|
3394
|
+
}
|
|
3395
|
+
},
|
|
3396
|
+
{
|
|
3397
|
+
matchId: "760498",
|
|
3398
|
+
stage: "R32",
|
|
3399
|
+
index: 13,
|
|
3400
|
+
home: {
|
|
3401
|
+
kind: "group",
|
|
3402
|
+
position: 1,
|
|
3403
|
+
group: "B"
|
|
3404
|
+
},
|
|
3405
|
+
away: {
|
|
3406
|
+
kind: "third",
|
|
3407
|
+
groups: [
|
|
3408
|
+
"E",
|
|
3409
|
+
"F",
|
|
3410
|
+
"G",
|
|
3411
|
+
"I",
|
|
3412
|
+
"J"
|
|
3413
|
+
]
|
|
3414
|
+
}
|
|
3415
|
+
},
|
|
3416
|
+
{
|
|
3417
|
+
matchId: "760499",
|
|
3418
|
+
stage: "R32",
|
|
3419
|
+
index: 14,
|
|
3420
|
+
home: {
|
|
3421
|
+
kind: "group",
|
|
3422
|
+
position: 2,
|
|
3423
|
+
group: "D"
|
|
3424
|
+
},
|
|
3425
|
+
away: {
|
|
3426
|
+
kind: "group",
|
|
3427
|
+
position: 2,
|
|
3428
|
+
group: "G"
|
|
3429
|
+
}
|
|
3430
|
+
},
|
|
3431
|
+
{
|
|
3432
|
+
matchId: "760500",
|
|
3433
|
+
stage: "R32",
|
|
3434
|
+
index: 15,
|
|
3435
|
+
home: {
|
|
3436
|
+
kind: "seed",
|
|
3437
|
+
label: "Argentina",
|
|
3438
|
+
code: "TBD"
|
|
3439
|
+
},
|
|
3440
|
+
away: {
|
|
3441
|
+
kind: "group",
|
|
3442
|
+
position: 2,
|
|
3443
|
+
group: "H"
|
|
3444
|
+
}
|
|
3445
|
+
},
|
|
3446
|
+
{
|
|
3447
|
+
matchId: "760501",
|
|
3448
|
+
stage: "R32",
|
|
3449
|
+
index: 16,
|
|
3450
|
+
home: {
|
|
3451
|
+
kind: "group",
|
|
3452
|
+
position: 1,
|
|
3453
|
+
group: "K"
|
|
3454
|
+
},
|
|
3455
|
+
away: {
|
|
3456
|
+
kind: "third",
|
|
3457
|
+
groups: [
|
|
3458
|
+
"D",
|
|
3459
|
+
"E",
|
|
3460
|
+
"I",
|
|
3461
|
+
"J",
|
|
3462
|
+
"L"
|
|
3463
|
+
]
|
|
3464
|
+
}
|
|
3465
|
+
},
|
|
3466
|
+
{
|
|
3467
|
+
matchId: "760502",
|
|
3468
|
+
stage: "R16",
|
|
3469
|
+
index: 1,
|
|
3470
|
+
home: {
|
|
3471
|
+
kind: "winner",
|
|
3472
|
+
stage: "R32",
|
|
3473
|
+
index: 1
|
|
3474
|
+
},
|
|
3475
|
+
away: {
|
|
3476
|
+
kind: "winner",
|
|
3477
|
+
stage: "R32",
|
|
3478
|
+
index: 3
|
|
3479
|
+
}
|
|
3480
|
+
},
|
|
3481
|
+
{
|
|
3482
|
+
matchId: "760503",
|
|
3483
|
+
stage: "R16",
|
|
3484
|
+
index: 2,
|
|
3485
|
+
home: {
|
|
3486
|
+
kind: "winner",
|
|
3487
|
+
stage: "R32",
|
|
3488
|
+
index: 2
|
|
3489
|
+
},
|
|
3490
|
+
away: {
|
|
3491
|
+
kind: "winner",
|
|
3492
|
+
stage: "R32",
|
|
3493
|
+
index: 5
|
|
3494
|
+
}
|
|
3495
|
+
},
|
|
3496
|
+
{
|
|
3497
|
+
matchId: "760504",
|
|
3498
|
+
stage: "R16",
|
|
3499
|
+
index: 3,
|
|
3500
|
+
home: {
|
|
3501
|
+
kind: "winner",
|
|
3502
|
+
stage: "R32",
|
|
3503
|
+
index: 4
|
|
3504
|
+
},
|
|
3505
|
+
away: {
|
|
3506
|
+
kind: "winner",
|
|
3507
|
+
stage: "R32",
|
|
3508
|
+
index: 6
|
|
3509
|
+
}
|
|
3510
|
+
},
|
|
3511
|
+
{
|
|
3512
|
+
matchId: "760505",
|
|
3513
|
+
stage: "R16",
|
|
3514
|
+
index: 4,
|
|
3515
|
+
home: {
|
|
3516
|
+
kind: "winner",
|
|
3517
|
+
stage: "R32",
|
|
3518
|
+
index: 7
|
|
3519
|
+
},
|
|
3520
|
+
away: {
|
|
3521
|
+
kind: "winner",
|
|
3522
|
+
stage: "R32",
|
|
3523
|
+
index: 8
|
|
3524
|
+
}
|
|
3525
|
+
},
|
|
3526
|
+
{
|
|
3527
|
+
matchId: "760506",
|
|
3528
|
+
stage: "R16",
|
|
3529
|
+
index: 5,
|
|
3530
|
+
home: {
|
|
3531
|
+
kind: "winner",
|
|
3532
|
+
stage: "R32",
|
|
3533
|
+
index: 11
|
|
3534
|
+
},
|
|
3535
|
+
away: {
|
|
3536
|
+
kind: "winner",
|
|
3537
|
+
stage: "R32",
|
|
3538
|
+
index: 12
|
|
3539
|
+
}
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
matchId: "760507",
|
|
3543
|
+
stage: "R16",
|
|
3544
|
+
index: 6,
|
|
3545
|
+
home: {
|
|
3546
|
+
kind: "winner",
|
|
3547
|
+
stage: "R32",
|
|
3548
|
+
index: 9
|
|
3549
|
+
},
|
|
3550
|
+
away: {
|
|
3551
|
+
kind: "winner",
|
|
3552
|
+
stage: "R32",
|
|
3553
|
+
index: 10
|
|
3554
|
+
}
|
|
3555
|
+
},
|
|
3556
|
+
{
|
|
3557
|
+
matchId: "760508",
|
|
3558
|
+
stage: "R16",
|
|
3559
|
+
index: 7,
|
|
3560
|
+
home: {
|
|
3561
|
+
kind: "winner",
|
|
3562
|
+
stage: "R32",
|
|
3563
|
+
index: 13
|
|
3564
|
+
},
|
|
3565
|
+
away: {
|
|
3566
|
+
kind: "winner",
|
|
3567
|
+
stage: "R32",
|
|
3568
|
+
index: 15
|
|
3569
|
+
}
|
|
3570
|
+
},
|
|
3571
|
+
{
|
|
3572
|
+
matchId: "760509",
|
|
3573
|
+
stage: "R16",
|
|
3574
|
+
index: 8,
|
|
3575
|
+
home: {
|
|
3576
|
+
kind: "winner",
|
|
3577
|
+
stage: "R32",
|
|
3578
|
+
index: 14
|
|
3579
|
+
},
|
|
3580
|
+
away: {
|
|
3581
|
+
kind: "winner",
|
|
3582
|
+
stage: "R32",
|
|
3583
|
+
index: 16
|
|
3584
|
+
}
|
|
3585
|
+
},
|
|
3586
|
+
{
|
|
3587
|
+
matchId: "760510",
|
|
3588
|
+
stage: "QF",
|
|
3589
|
+
index: 1,
|
|
3590
|
+
home: {
|
|
3591
|
+
kind: "winner",
|
|
3592
|
+
stage: "R16",
|
|
3593
|
+
index: 1
|
|
3594
|
+
},
|
|
3595
|
+
away: {
|
|
3596
|
+
kind: "winner",
|
|
3597
|
+
stage: "R16",
|
|
3598
|
+
index: 2
|
|
3599
|
+
}
|
|
3600
|
+
},
|
|
3601
|
+
{
|
|
3602
|
+
matchId: "760511",
|
|
3603
|
+
stage: "QF",
|
|
3604
|
+
index: 2,
|
|
3605
|
+
home: {
|
|
3606
|
+
kind: "winner",
|
|
3607
|
+
stage: "R16",
|
|
3608
|
+
index: 5
|
|
3609
|
+
},
|
|
3610
|
+
away: {
|
|
3611
|
+
kind: "winner",
|
|
3612
|
+
stage: "R16",
|
|
3613
|
+
index: 6
|
|
3614
|
+
}
|
|
3615
|
+
},
|
|
3616
|
+
{
|
|
3617
|
+
matchId: "760512",
|
|
3618
|
+
stage: "QF",
|
|
3619
|
+
index: 3,
|
|
3620
|
+
home: {
|
|
3621
|
+
kind: "winner",
|
|
3622
|
+
stage: "R16",
|
|
3623
|
+
index: 3
|
|
3624
|
+
},
|
|
3625
|
+
away: {
|
|
3626
|
+
kind: "winner",
|
|
3627
|
+
stage: "R16",
|
|
3628
|
+
index: 4
|
|
3629
|
+
}
|
|
3630
|
+
},
|
|
3631
|
+
{
|
|
3632
|
+
matchId: "760513",
|
|
3633
|
+
stage: "QF",
|
|
3634
|
+
index: 4,
|
|
3635
|
+
home: {
|
|
3636
|
+
kind: "winner",
|
|
3637
|
+
stage: "R16",
|
|
3638
|
+
index: 7
|
|
3639
|
+
},
|
|
3640
|
+
away: {
|
|
3641
|
+
kind: "winner",
|
|
3642
|
+
stage: "R16",
|
|
3643
|
+
index: 8
|
|
3644
|
+
}
|
|
3645
|
+
},
|
|
3646
|
+
{
|
|
3647
|
+
matchId: "760514",
|
|
3648
|
+
stage: "SF",
|
|
3649
|
+
index: 1,
|
|
3650
|
+
home: {
|
|
3651
|
+
kind: "winner",
|
|
3652
|
+
stage: "QF",
|
|
3653
|
+
index: 1
|
|
3654
|
+
},
|
|
3655
|
+
away: {
|
|
3656
|
+
kind: "winner",
|
|
3657
|
+
stage: "QF",
|
|
3658
|
+
index: 2
|
|
3659
|
+
}
|
|
3660
|
+
},
|
|
3661
|
+
{
|
|
3662
|
+
matchId: "760515",
|
|
3663
|
+
stage: "SF",
|
|
3664
|
+
index: 2,
|
|
3665
|
+
home: {
|
|
3666
|
+
kind: "winner",
|
|
3667
|
+
stage: "QF",
|
|
3668
|
+
index: 3
|
|
3669
|
+
},
|
|
3670
|
+
away: {
|
|
3671
|
+
kind: "winner",
|
|
3672
|
+
stage: "QF",
|
|
3673
|
+
index: 4
|
|
3674
|
+
}
|
|
3675
|
+
},
|
|
3676
|
+
{
|
|
3677
|
+
matchId: "760516",
|
|
3678
|
+
stage: "3P",
|
|
3679
|
+
index: 1,
|
|
3680
|
+
home: {
|
|
3681
|
+
kind: "loser",
|
|
3682
|
+
stage: "SF",
|
|
3683
|
+
index: 1
|
|
3684
|
+
},
|
|
3685
|
+
away: {
|
|
3686
|
+
kind: "loser",
|
|
3687
|
+
stage: "SF",
|
|
3688
|
+
index: 2
|
|
3689
|
+
}
|
|
3690
|
+
},
|
|
3691
|
+
{
|
|
3692
|
+
matchId: "760517",
|
|
3693
|
+
stage: "F",
|
|
3694
|
+
index: 1,
|
|
3695
|
+
home: {
|
|
3696
|
+
kind: "winner",
|
|
3697
|
+
stage: "SF",
|
|
3698
|
+
index: 1
|
|
3699
|
+
},
|
|
3700
|
+
away: {
|
|
3701
|
+
kind: "winner",
|
|
3702
|
+
stage: "SF",
|
|
3703
|
+
index: 2
|
|
3704
|
+
}
|
|
3705
|
+
}
|
|
3706
|
+
]
|
|
3707
|
+
};
|
|
3708
|
+
var TOPOLOGY = bracket_2026_default;
|
|
3709
|
+
function loadBracketTopology() {
|
|
3710
|
+
return TOPOLOGY;
|
|
3711
|
+
}
|
|
2884
3712
|
function resolveCompetition(explicit) {
|
|
2885
3713
|
if (explicit) return explicit;
|
|
2886
3714
|
if (typeof process !== "undefined" && process.env?.CLAUDINHO_COMPETITION) {
|
|
@@ -2921,7 +3749,7 @@ async function getStandings(adapter, group) {
|
|
|
2921
3749
|
if (adapter.fetchStandings) {
|
|
2922
3750
|
try {
|
|
2923
3751
|
const all = await adapter.fetchStandings();
|
|
2924
|
-
const tables2 = (want ? all.filter((
|
|
3752
|
+
const tables2 = (want ? all.filter((t2) => t2.group === want) : all).sort(
|
|
2925
3753
|
(a, b) => a.group.localeCompare(b.group)
|
|
2926
3754
|
);
|
|
2927
3755
|
return { tables: tables2, degraded: false, source: adapter.name };
|
|
@@ -2929,9 +3757,45 @@ async function getStandings(adapter, group) {
|
|
|
2929
3757
|
}
|
|
2930
3758
|
}
|
|
2931
3759
|
const letters = want ? [want] : groups();
|
|
2932
|
-
const tables = letters.map((g) => ({ group: g, rows:
|
|
3760
|
+
const tables = letters.map((g) => ({ group: g, rows: rosterAtZero(fixturesByGroup(g)) })).filter((t2) => t2.rows.length > 0);
|
|
2933
3761
|
return { tables, degraded: true };
|
|
2934
3762
|
}
|
|
3763
|
+
var KNOCKOUT_WINDOW_START = "20260628";
|
|
3764
|
+
var KNOCKOUT_WINDOW_END = "20260719";
|
|
3765
|
+
async function getBracket(adapter, opts = {}) {
|
|
3766
|
+
const topology = loadBracketTopology();
|
|
3767
|
+
const base = allFixtures().filter((m) => m.stage !== "GROUP" && m.stage !== "FRIENDLY");
|
|
3768
|
+
let matches = base;
|
|
3769
|
+
let liveDegraded = true;
|
|
3770
|
+
let source;
|
|
3771
|
+
try {
|
|
3772
|
+
const live = adapter.fetchWindow ? await adapter.fetchWindow(KNOCKOUT_WINDOW_START, KNOCKOUT_WINDOW_END) : [];
|
|
3773
|
+
matches = mergeLive(base, live);
|
|
3774
|
+
liveDegraded = false;
|
|
3775
|
+
source = adapter.name;
|
|
3776
|
+
} catch {
|
|
3777
|
+
}
|
|
3778
|
+
const standings = await getStandings(adapter);
|
|
3779
|
+
if (!source && !standings.degraded && standings.source) {
|
|
3780
|
+
source = standings.source;
|
|
3781
|
+
}
|
|
3782
|
+
const view = buildBracketView(
|
|
3783
|
+
topology,
|
|
3784
|
+
matches,
|
|
3785
|
+
standings.tables,
|
|
3786
|
+
standings.degraded,
|
|
3787
|
+
liveDegraded,
|
|
3788
|
+
opts.stage,
|
|
3789
|
+
opts.lang
|
|
3790
|
+
);
|
|
3791
|
+
if (source) view.source = source;
|
|
3792
|
+
return {
|
|
3793
|
+
view,
|
|
3794
|
+
degraded: liveDegraded,
|
|
3795
|
+
standingsDegraded: standings.degraded,
|
|
3796
|
+
source
|
|
3797
|
+
};
|
|
3798
|
+
}
|
|
2935
3799
|
function shiftUtcDate(dateISO, days) {
|
|
2936
3800
|
const [y, m, d] = dateISO.slice(0, 10).split("-").map(Number);
|
|
2937
3801
|
return new Date(Date.UTC(y ?? 1970, (m ?? 1) - 1, (d ?? 1) + days)).toISOString().slice(0, 10);
|
|
@@ -3085,9 +3949,9 @@ function outcomeLabel(o, match) {
|
|
|
3085
3949
|
return o.label;
|
|
3086
3950
|
}
|
|
3087
3951
|
function utcHhmm(iso) {
|
|
3088
|
-
const
|
|
3089
|
-
if (!Number.isFinite(
|
|
3090
|
-
return `${new Date(
|
|
3952
|
+
const t2 = Date.parse(iso);
|
|
3953
|
+
if (!Number.isFinite(t2)) return "";
|
|
3954
|
+
return `${new Date(t2).toISOString().slice(11, 16)} UTC`;
|
|
3091
3955
|
}
|
|
3092
3956
|
function marketFavoriteText(signal, match) {
|
|
3093
3957
|
const fav = signal.favorite;
|
|
@@ -3450,6 +4314,7 @@ function socialCard(m, input) {
|
|
|
3450
4314
|
}
|
|
3451
4315
|
const loc = matchLocation(m);
|
|
3452
4316
|
if (loc) lines.push(loc);
|
|
4317
|
+
if (m.stage !== "GROUP") lines.push(stageLabel(m));
|
|
3453
4318
|
return lines;
|
|
3454
4319
|
}
|
|
3455
4320
|
function formatShareSnippet(input, options = {}) {
|
|
@@ -3524,6 +4389,78 @@ function formatShareTable(input, options = {}) {
|
|
|
3524
4389
|
);
|
|
3525
4390
|
return blocks.join("\n\n");
|
|
3526
4391
|
}
|
|
4392
|
+
function formatParticipant(p, flags, locale) {
|
|
4393
|
+
const suffix = p.status === "projected" ? ` ${t(locale, "bracket.projected")}` : "";
|
|
4394
|
+
if (flags && p.flag !== "\u{1F3F3}\uFE0F") return `${p.flag} ${p.label}${suffix}`;
|
|
4395
|
+
if (p.code) return `${p.code}${suffix}`;
|
|
4396
|
+
return `${p.label}${suffix}`;
|
|
4397
|
+
}
|
|
4398
|
+
function statusTail2(m) {
|
|
4399
|
+
if (m.status === "LIVE" && m.minute) return ` ${m.minute}'`;
|
|
4400
|
+
if (m.status === "HT") return " HT";
|
|
4401
|
+
if (m.status === "FT") return " FT";
|
|
4402
|
+
if (isLive(m.status)) return " LIVE";
|
|
4403
|
+
return "";
|
|
4404
|
+
}
|
|
4405
|
+
function formatBracketMatchLine(mv, opts = {}) {
|
|
4406
|
+
const flags = opts.flags !== false;
|
|
4407
|
+
const home = formatParticipant(mv.home, flags, opts.locale);
|
|
4408
|
+
const away = formatParticipant(mv.away, flags, opts.locale);
|
|
4409
|
+
const m = mv.match;
|
|
4410
|
+
if (isFinished(m.status) || isLive(m.status)) {
|
|
4411
|
+
return ` ${home} ${scoreline(m)} ${away}${statusTail2(m)}`;
|
|
4412
|
+
}
|
|
4413
|
+
const kickoff = mv.kickoff ? formatKickoff(mv.kickoff, { tz: opts.tz, locale: opts.locale }) : "";
|
|
4414
|
+
return ` ${home} vs ${away}${kickoff ? ` \xB7 ${kickoff}` : ""}`;
|
|
4415
|
+
}
|
|
4416
|
+
function formatBracketList(view, opts = {}) {
|
|
4417
|
+
const blocks = [];
|
|
4418
|
+
for (const stage of view.stages) {
|
|
4419
|
+
blocks.push(stage.label);
|
|
4420
|
+
for (const mv of stage.matches) {
|
|
4421
|
+
blocks.push(formatBracketMatchLine(mv, opts));
|
|
4422
|
+
}
|
|
4423
|
+
blocks.push("");
|
|
4424
|
+
}
|
|
4425
|
+
if (opts.footer !== false) {
|
|
4426
|
+
if (view.degraded) {
|
|
4427
|
+
blocks.push(`(${t(opts.locale, "bracket.degraded")})`);
|
|
4428
|
+
} else if (view.standingsDegraded) {
|
|
4429
|
+
blocks.push(`(${t(opts.locale, "bracket.standingsDegraded")})`);
|
|
4430
|
+
}
|
|
4431
|
+
if (view.source) {
|
|
4432
|
+
blocks.push(t(opts.locale, "live.data", { source: liveSourceLabel(view.source) }));
|
|
4433
|
+
}
|
|
4434
|
+
}
|
|
4435
|
+
return blocks.join("\n").trimEnd();
|
|
4436
|
+
}
|
|
4437
|
+
function formatShareBracket(input, options = {}) {
|
|
4438
|
+
const includeHashtag = options.includeHashtag !== false;
|
|
4439
|
+
const includeInstall = options.includeInstallLine !== false;
|
|
4440
|
+
const locale = options.locale;
|
|
4441
|
+
const blocks = [t(locale, "bracket.shareTitle"), ""];
|
|
4442
|
+
if (input.view.stages.length === 0) {
|
|
4443
|
+
blocks.push(input.emptyNote ?? t(locale, "bracket.empty"));
|
|
4444
|
+
} else {
|
|
4445
|
+
blocks.push(formatBracketList(input.view, { footer: false, locale }));
|
|
4446
|
+
if (input.view.degraded) {
|
|
4447
|
+
blocks.push(`(${t(locale, "bracket.degraded")})`);
|
|
4448
|
+
} else if (input.view.standingsDegraded) {
|
|
4449
|
+
blocks.push(`(${t(locale, "bracket.standingsDegraded")})`);
|
|
4450
|
+
}
|
|
4451
|
+
}
|
|
4452
|
+
const footer = [];
|
|
4453
|
+
const src = input.source ?? input.view.source;
|
|
4454
|
+
if (src) footer.push(t(locale, "live.data", { source: liveSourceLabel(src) }));
|
|
4455
|
+
footer.push(
|
|
4456
|
+
[includeHashtag ? SHARE_HASHTAG : "", SHARE_DISCLAIMER].filter(Boolean).join(" \xB7 ")
|
|
4457
|
+
);
|
|
4458
|
+
if (includeInstall && input.installLine) {
|
|
4459
|
+
footer.push(t(locale, "share.tryIt", { line: input.installLine }));
|
|
4460
|
+
}
|
|
4461
|
+
blocks.push("", footer.join("\n"));
|
|
4462
|
+
return blocks.join("\n");
|
|
4463
|
+
}
|
|
3527
4464
|
|
|
3528
4465
|
// src/format.ts
|
|
3529
4466
|
var STATUS_LABEL = {
|
|
@@ -3534,29 +4471,9 @@ var STATUS_LABEL = {
|
|
|
3534
4471
|
POSTPONED: "postponed",
|
|
3535
4472
|
CANCELLED: "cancelled"
|
|
3536
4473
|
};
|
|
3537
|
-
function stageName(stage) {
|
|
3538
|
-
switch (stage) {
|
|
3539
|
-
case "GROUP":
|
|
3540
|
-
return "Group stage";
|
|
3541
|
-
case "R32":
|
|
3542
|
-
return "Round of 32";
|
|
3543
|
-
case "R16":
|
|
3544
|
-
return "Round of 16";
|
|
3545
|
-
case "QF":
|
|
3546
|
-
return "Quarter-final";
|
|
3547
|
-
case "SF":
|
|
3548
|
-
return "Semi-final";
|
|
3549
|
-
case "3P":
|
|
3550
|
-
return "Third-place play-off";
|
|
3551
|
-
case "F":
|
|
3552
|
-
return "Final";
|
|
3553
|
-
case "FRIENDLY":
|
|
3554
|
-
return "Friendly";
|
|
3555
|
-
}
|
|
3556
|
-
}
|
|
3557
4474
|
function matchLine(m, opts = {}) {
|
|
3558
4475
|
const head = `${m.home.flag} ${m.home.name} ${scoreline(m)} ${m.away.name} ${m.away.flag}`;
|
|
3559
|
-
const stage =
|
|
4476
|
+
const stage = stageLabel(m);
|
|
3560
4477
|
let tail;
|
|
3561
4478
|
if (m.status === "SCHEDULED") {
|
|
3562
4479
|
tail = `${formatKickoff(m.kickoff, opts)} (in ${countdown(m.kickoff)})`;
|
|
@@ -3689,9 +4606,9 @@ function fmtOpts(args) {
|
|
|
3689
4606
|
flavor: asFlavorLevel(args.flavor ?? process.env.CLAUDINHO_FLAVOR)
|
|
3690
4607
|
};
|
|
3691
4608
|
}
|
|
3692
|
-
function withDisclaimer(text, source) {
|
|
4609
|
+
function withDisclaimer(text, source, lang) {
|
|
3693
4610
|
const live = source ? `
|
|
3694
|
-
|
|
4611
|
+
${t(lang, "live.data", { source: liveSourceLabel(source) })}` : "";
|
|
3695
4612
|
return `${text}${live}
|
|
3696
4613
|
|
|
3697
4614
|
${DISCLAIMER}`;
|
|
@@ -3766,13 +4683,45 @@ async function toolGetStandings(args) {
|
|
|
3766
4683
|
data: { degraded, source: source ?? null, tables: args.group ? null : [] }
|
|
3767
4684
|
};
|
|
3768
4685
|
}
|
|
3769
|
-
let text = shaped.map((
|
|
4686
|
+
let text = shaped.map((t2) => standingsTable(t2.group, t2.standings)).join("\n\n");
|
|
3770
4687
|
if (degraded) text += "\n\n(Live standings unavailable \u2014 showing the group roster.)";
|
|
3771
4688
|
return {
|
|
3772
4689
|
text: withDisclaimer(text, source),
|
|
3773
4690
|
data: { degraded, source: source ?? null, tables: args.group ? shaped[0] ?? null : shaped }
|
|
3774
4691
|
};
|
|
3775
4692
|
}
|
|
4693
|
+
var BRACKET_STAGES = /* @__PURE__ */ new Set(["R32", "R16", "QF", "SF", "3P", "F"]);
|
|
4694
|
+
async function toolGetBracket(args) {
|
|
4695
|
+
const filter = args.stage?.toUpperCase();
|
|
4696
|
+
if (filter && !BRACKET_STAGES.has(filter)) {
|
|
4697
|
+
return {
|
|
4698
|
+
text: withDisclaimer(
|
|
4699
|
+
t(args.lang, "bracket.unknownStage", { stage: args.stage ?? "" }),
|
|
4700
|
+
void 0,
|
|
4701
|
+
args.lang
|
|
4702
|
+
),
|
|
4703
|
+
data: { view: null }
|
|
4704
|
+
};
|
|
4705
|
+
}
|
|
4706
|
+
const { view, degraded, standingsDegraded, source } = await getBracket(
|
|
4707
|
+
resolveAdapter(args),
|
|
4708
|
+
filter ? { stage: filter, lang: args.lang } : { lang: args.lang }
|
|
4709
|
+
);
|
|
4710
|
+
let text = formatBracketList(view, { footer: false, locale: args.lang });
|
|
4711
|
+
if (degraded) {
|
|
4712
|
+
text += `
|
|
4713
|
+
|
|
4714
|
+
(${t(args.lang, "bracket.degraded")})`;
|
|
4715
|
+
} else if (standingsDegraded) {
|
|
4716
|
+
text += `
|
|
4717
|
+
|
|
4718
|
+
(${t(args.lang, "bracket.standingsDegraded")})`;
|
|
4719
|
+
}
|
|
4720
|
+
return {
|
|
4721
|
+
text: withDisclaimer(text, source, args.lang),
|
|
4722
|
+
data: { degraded, standingsDegraded, source: source ?? null, view }
|
|
4723
|
+
};
|
|
4724
|
+
}
|
|
3776
4725
|
async function standingsResourceText(group, adapter) {
|
|
3777
4726
|
const g = group.toUpperCase();
|
|
3778
4727
|
const { tables, degraded, source } = await getStandings(adapter, g);
|
|
@@ -3950,6 +4899,45 @@ async function toolGetShareSnippet(args) {
|
|
|
3950
4899
|
}
|
|
3951
4900
|
};
|
|
3952
4901
|
}
|
|
4902
|
+
if (args.bracket) {
|
|
4903
|
+
const stageFilter = args.knockoutStage?.toUpperCase();
|
|
4904
|
+
if (stageFilter && !BRACKET_STAGES.has(stageFilter)) {
|
|
4905
|
+
return {
|
|
4906
|
+
text: withDisclaimer(
|
|
4907
|
+
t(args.lang, "bracket.unknownStage", { stage: args.knockoutStage ?? "" }),
|
|
4908
|
+
void 0,
|
|
4909
|
+
args.lang
|
|
4910
|
+
),
|
|
4911
|
+
data: { kind: "bracket", view: null }
|
|
4912
|
+
};
|
|
4913
|
+
}
|
|
4914
|
+
const { view, degraded: degraded2, source: source2 } = await getBracket(
|
|
4915
|
+
resolveAdapter(args),
|
|
4916
|
+
stageFilter ? { stage: stageFilter, lang: args.lang } : { lang: args.lang }
|
|
4917
|
+
);
|
|
4918
|
+
const snippet = formatShareBracket(
|
|
4919
|
+
{
|
|
4920
|
+
view,
|
|
4921
|
+
source: degraded2 ? void 0 : source2,
|
|
4922
|
+
installLine: stageFilter ? `npx @claudinho/cli bracket ${stageFilter}` : "npx @claudinho/cli bracket",
|
|
4923
|
+
emptyNote: t(args.lang, "bracket.empty")
|
|
4924
|
+
},
|
|
4925
|
+
{ ...options, locale: args.lang }
|
|
4926
|
+
);
|
|
4927
|
+
return {
|
|
4928
|
+
text: snippet,
|
|
4929
|
+
data: {
|
|
4930
|
+
kind: "bracket",
|
|
4931
|
+
target: "bracket",
|
|
4932
|
+
...stageFilter ? { stage: stageFilter } : {},
|
|
4933
|
+
source: degraded2 ? null : source2 ?? null,
|
|
4934
|
+
degraded: degraded2,
|
|
4935
|
+
informationalOnly: true,
|
|
4936
|
+
snippet,
|
|
4937
|
+
view
|
|
4938
|
+
}
|
|
4939
|
+
};
|
|
4940
|
+
}
|
|
3953
4941
|
if (args.matchId) {
|
|
3954
4942
|
const { match, degraded: degraded2, source: source2 } = await getMatchById(resolveAdapter(args), args.matchId);
|
|
3955
4943
|
const matches = match ? [match] : [];
|
|
@@ -4017,11 +5005,11 @@ async function toolGetShareSnippet(args) {
|
|
|
4017
5005
|
|
|
4018
5006
|
// src/server.ts
|
|
4019
5007
|
var SERVER_NAME = "claudinho";
|
|
4020
|
-
var SERVER_VERSION = "0.
|
|
5008
|
+
var SERVER_VERSION = "0.8.0";
|
|
4021
5009
|
var VOICE = asFlavorLevel(process.env.CLAUDINHO_FLAVOR) === "off" ? "" : `
|
|
4022
5010
|
Voice: when relaying scores, narrate with lively, regionally-appropriate football-commentary energy in the user's language. Each match line may end with a short exclamation ("\u2014 \xA1GOOOOL!") \u2014 use it as a tone cue. Keep every fact exact; never invent details and never impersonate or name a real commentator.`;
|
|
4023
5011
|
var INSTRUCTIONS = `Claudinho serves live scores, fixtures, and group standings for the 2026 men's football tournament.
|
|
4024
|
-
Use get_live during matches, get_today for a day's schedule, get_next_fixture for a specific team (3-letter code, e.g. MEX),
|
|
5012
|
+
Use get_live during matches, get_today for a day's schedule, get_next_fixture for a specific team (3-letter code, e.g. MEX), get_standings for group tables, and get_bracket for the knockout tree.
|
|
4025
5013
|
Use get_market_signal for read-only prediction-market signals (a match, a team's current-or-next fixture, or a date). Market data is informational only \u2014 relay the percentages factually and never frame it as betting or trading advice.
|
|
4026
5014
|
Use get_share_snippet to produce a ready-to-paste match card (for a match, a team's next fixture, a date, or live matches) \u2014 hand the user the returned snippet text verbatim.${VOICE}
|
|
4027
5015
|
${DISCLAIMER}`;
|
|
@@ -4094,6 +5082,19 @@ function buildServer() {
|
|
|
4094
5082
|
},
|
|
4095
5083
|
async (args) => toContent(await toolGetStandings(args))
|
|
4096
5084
|
);
|
|
5085
|
+
server.registerTool(
|
|
5086
|
+
"get_bracket",
|
|
5087
|
+
{
|
|
5088
|
+
title: "Knockout bracket",
|
|
5089
|
+
description: "Knockout bracket from the Round of 32 through the final, with live scores overlaid. Group slots project only when a group is fully played; winner slots need a confirmed FT result. Pass an optional stage (R32, R16, QF, SF, 3P, F) to filter one round. Falls back to structure-only when live data is unavailable.",
|
|
5090
|
+
inputSchema: {
|
|
5091
|
+
stage: z.enum(["R32", "R16", "QF", "SF", "3P", "F"]).optional().describe("Knockout round to show (omit for the full bracket)"),
|
|
5092
|
+
...commonArgs
|
|
5093
|
+
},
|
|
5094
|
+
annotations: { readOnlyHint: true, openWorldHint: true }
|
|
5095
|
+
},
|
|
5096
|
+
async (args) => toContent(await toolGetBracket(args))
|
|
5097
|
+
);
|
|
4097
5098
|
server.registerTool(
|
|
4098
5099
|
"get_next_fixture",
|
|
4099
5100
|
{
|
|
@@ -4127,11 +5128,13 @@ function buildServer() {
|
|
|
4127
5128
|
"get_share_snippet",
|
|
4128
5129
|
{
|
|
4129
5130
|
title: "Shareable match snippet",
|
|
4130
|
-
description: `A polished, copy-pasteable card (plain text) for a match (matchId), a team's next fixture (team), a group's standings table (group, e.g. "A"), a date (default: today), or live matches (live: true). Returns the ready-to-paste snippet plus structured data \u2014 hand the snippet text to the user verbatim. No links; it carries a non-affiliation disclaimer, and any market line stays informational only.`,
|
|
5131
|
+
description: `A polished, copy-pasteable card (plain text) for a match (matchId), a team's next fixture (team), a group's standings table (group, e.g. "A"), the knockout bracket (bracket: true), a date (default: today), or live matches (live: true). Returns the ready-to-paste snippet plus structured data \u2014 hand the snippet text to the user verbatim. No links; it carries a non-affiliation disclaimer, and any market line stays informational only.`,
|
|
4131
5132
|
inputSchema: {
|
|
4132
5133
|
matchId: z.string().optional().describe("Match id (most specific)"),
|
|
4133
5134
|
team: teamArg.optional().describe("3-letter team code for that team's next fixture, e.g. MEX"),
|
|
4134
5135
|
group: groupArg.optional().describe("Group letter A\u2013L for a standings card, e.g. A"),
|
|
5136
|
+
bracket: z.boolean().optional().describe("Knockout bracket card (use with optional knockoutStage)"),
|
|
5137
|
+
knockoutStage: z.enum(["R32", "R16", "QF", "SF", "3P", "F"]).optional().describe("Filter the bracket card to one round"),
|
|
4135
5138
|
date: dateArg.optional().describe("Date as YYYY-MM-DD (default: today)"),
|
|
4136
5139
|
live: z.boolean().optional().describe("Snapshot of matches in play right now"),
|
|
4137
5140
|
style: z.enum(["social", "compact"]).optional().describe("social (default, full card) or compact (one line per match)"),
|