@sideboard-ai/core 0.1.192 → 0.1.193
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/{abletime-JFMBCSIQ.js → abletime-QHKWGTBY.js} +4 -3
- package/dist/{abletime-53T7G667.js → abletime-UX53JTIH.js} +4 -3
- package/dist/agents/cursor-runner.js +4 -4
- package/dist/{agents-TXGQIK2E.js → agents-MN4GSQTL.js} +19 -17
- package/dist/{agents-T5VBB6X3.js → agents-OK5VD25T.js} +10 -8
- package/dist/{app-settings-663VQWUV.js → app-settings-LO7UFHQ6.js} +5 -2
- package/dist/{app-settings-74HBAAH7.js → app-settings-QYLNKRK4.js} +5 -2
- package/dist/branch-prefix-7F37FIPX.js +10 -0
- package/dist/branch-prefix-EVW2KHGQ.js +12 -0
- package/dist/{caffeinate-hold-SK2QISPE.js → caffeinate-hold-22VFDPSO.js} +2 -2
- package/dist/{caffeinate-hold-DBKMRZZO.js → caffeinate-hold-OK4JJ5PP.js} +2 -2
- package/dist/{chunk-FZ3G5TXM.js → chunk-3DX2T2KR.js} +174 -172
- package/dist/{chunk-HVIEYTUK.js → chunk-3OHR73VK.js} +1 -1
- package/dist/{chunk-VV7UT3E2.js → chunk-4OVCJPVI.js} +11 -9
- package/dist/{chunk-UBQIELFS.js → chunk-4QJRH5DL.js} +1 -1
- package/dist/{chunk-AO35MGOE.js → chunk-4TYXWPAJ.js} +1 -1
- package/dist/chunk-64QSHOKV.js +869 -0
- package/dist/{chunk-FY64F2ZQ.js → chunk-7AJ7OZZF.js} +4 -4
- package/dist/{chunk-WLPXZFRE.js → chunk-7J72QJOM.js} +1 -1
- package/dist/chunk-7SNJMKD6.js +20 -0
- package/dist/{chunk-WXKXSZN4.js → chunk-BIKCWYRP.js} +16 -873
- package/dist/{chunk-J7LQVLFQ.js → chunk-BWRS6GAS.js} +19 -1
- package/dist/{chunk-GOZ6T3AG.js → chunk-CJFBSQIB.js} +1 -1
- package/dist/{chunk-WHD4JNTN.js → chunk-EBPBGQ4P.js} +13 -13
- package/dist/{chunk-JTJHOYCU.js → chunk-EQNRWDLN.js} +10 -4
- package/dist/{chunk-NF6ENGHS.js → chunk-EQXXGOMD.js} +185 -182
- package/dist/{chunk-7NSXGL6L.js → chunk-HIX2VDRE.js} +11 -9
- package/dist/chunk-ILWQT2UN.js +55 -0
- package/dist/chunk-JTWKGOFI.js +23 -0
- package/dist/{chunk-TCQAFTSV.js → chunk-KJBYIIJU.js} +1 -1
- package/dist/{chunk-OKZFTOM2.js → chunk-KORE4WOF.js} +19 -1
- package/dist/{chunk-TWSCTJCR.js → chunk-MQC2VA5U.js} +14 -14
- package/dist/{chunk-4M2AK3O5.js → chunk-O4BMPY5Y.js} +1 -1
- package/dist/chunk-PBEPPXMY.js +57 -0
- package/dist/{chunk-IEEAVWAP.js → chunk-PE337IM2.js} +7 -7
- package/dist/chunk-RCWHL4TK.js +866 -0
- package/dist/{chunk-EFVFB2AH.js → chunk-WFUDY6PC.js} +12 -5
- package/dist/{chunk-XBLN52RZ.js → chunk-XPKKCFRT.js} +9 -866
- package/dist/{chunk-OCQPTUR7.js → chunk-YWI3IBP2.js} +1 -1
- package/dist/{connected-teams-WOYCH7FR.js → connected-teams-PU4AMFNA.js} +2 -2
- package/dist/{connected-teams-ON2KIKQX.js → connected-teams-SYQQGCXD.js} +2 -2
- package/dist/{coordinator-prompt-PNUDN4DW.js → coordinator-prompt-GXJIPWNA.js} +7 -5
- package/dist/{coordinator-prompt-S4HHFSLI.js → coordinator-prompt-WB65HIZ3.js} +9 -7
- package/dist/{cursor-recover-NDMLLNYX.js → cursor-recover-DTQAUDGO.js} +2 -2
- package/dist/{cursor-recover-L5MD6MBO.js → cursor-recover-TXVTLAMA.js} +1 -1
- package/dist/github-DWROJOB7.js +11 -0
- package/dist/github-IIF7AQNO.js +9 -0
- package/dist/{global-workspace-2BVCJUAL.js → global-workspace-BZ6V6TEX.js} +7 -5
- package/dist/{global-workspace-JTBBH2K5.js → global-workspace-MMK5UFUZ.js} +9 -7
- package/dist/index.cjs +274 -194
- package/dist/index.d.cts +47 -8
- package/dist/index.d.ts +47 -8
- package/dist/index.js +98 -127
- package/dist/mcp/run-stdio.cjs +260 -190
- package/dist/mcp/run-stdio.js +36 -76
- package/dist/{orchestrator-LWEZ74RK.js → orchestrator-4KI6VIFG.js} +14 -12
- package/dist/{orchestrator-4G76BOHH.js → orchestrator-SFOT6Q6F.js} +13 -11
- package/dist/{paths-RRCLNSJB.js → paths-C2VERLAE.js} +1 -1
- package/dist/{paths-53TLA7VQ.js → paths-LOXCISLX.js} +1 -1
- package/dist/{thread-store-ZL6GDIDP.js → thread-store-CO77HV2K.js} +2 -2
- package/dist/{thread-store-RXXNSRVO.js → thread-store-M4B52FUS.js} +2 -2
- package/dist/{workspaces-OY7D5RPU.js → workspaces-ACMZMKPD.js} +7 -5
- package/dist/{workspaces-ZYPME3YD.js → workspaces-KPJS7GLY.js} +9 -7
- package/dist/{worktree-7LOSSD7G.js → worktree-6IEVF3GN.js} +15 -12
- package/dist/{worktree-LPWTX2NA.js → worktree-UW6DNBIE.js} +20 -17
- package/dist/worktree-labels-3XDS6O3U.js +22 -0
- package/dist/worktree-labels-PEDOJBMD.js +24 -0
- package/package.json +1 -1
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isWorkspaceScratchPath
|
|
3
3
|
} from "./chunk-6K64FJDD.js";
|
|
4
|
-
import {
|
|
5
|
-
getGithubGitAuthMode,
|
|
6
|
-
getGithubPat
|
|
7
|
-
} from "./chunk-J7LQVLFQ.js";
|
|
8
|
-
import {
|
|
9
|
-
listThreads
|
|
10
|
-
} from "./chunk-TCQAFTSV.js";
|
|
11
|
-
import {
|
|
12
|
-
worktreesRoot
|
|
13
|
-
} from "./chunk-EFVFB2AH.js";
|
|
14
4
|
import {
|
|
15
5
|
ensureWorktreeSideboardIgnored
|
|
16
6
|
} from "./chunk-QQKDGPUI.js";
|
|
@@ -24,6 +14,22 @@ import {
|
|
|
24
14
|
materializeGithubAgentAuth,
|
|
25
15
|
resolveGhAuthToken
|
|
26
16
|
} from "./chunk-UFHNSFAS.js";
|
|
17
|
+
import {
|
|
18
|
+
getGithubGitAuthMode,
|
|
19
|
+
getGithubPat
|
|
20
|
+
} from "./chunk-BWRS6GAS.js";
|
|
21
|
+
import {
|
|
22
|
+
listThreads
|
|
23
|
+
} from "./chunk-KJBYIIJU.js";
|
|
24
|
+
import {
|
|
25
|
+
worktreesRoot
|
|
26
|
+
} from "./chunk-WFUDY6PC.js";
|
|
27
|
+
import {
|
|
28
|
+
allocateTeamName,
|
|
29
|
+
normalizeTakenSlug,
|
|
30
|
+
normalizeWorktreePath,
|
|
31
|
+
takenSlugsFromThread
|
|
32
|
+
} from "./chunk-RCWHL4TK.js";
|
|
27
33
|
|
|
28
34
|
// src/git/worktree.ts
|
|
29
35
|
import { randomBytes } from "crypto";
|
|
@@ -31,855 +37,6 @@ import { existsSync, readdirSync, realpathSync, unlinkSync, writeFileSync } from
|
|
|
31
37
|
import { tmpdir } from "os";
|
|
32
38
|
import { join } from "path";
|
|
33
39
|
|
|
34
|
-
// src/git/team-meta.ts
|
|
35
|
-
var SOCCER_TEAM_META = {
|
|
36
|
-
"aalborg": { location: "Aalborg, Denmark", league: "Danish Superliga" },
|
|
37
|
-
"aalesund": { location: "\xC5lesund, Norway", league: "Norwegian First Division" },
|
|
38
|
-
"aarhus": { location: "Aarhus, Denmark", league: "Danish Superliga" },
|
|
39
|
-
"aberdeen": { location: "Aberdeen, Scotland", league: "Scottish Premiership" },
|
|
40
|
-
"ac-milan": { location: "Milan, Italy", league: "Serie A" },
|
|
41
|
-
"ado-den-haag": { location: "The Hague, Netherlands", league: "Eerste Divisie" },
|
|
42
|
-
"aik": { location: "Stockholm, Sweden", league: "Allsvenskan" },
|
|
43
|
-
"ajaccio": { location: "Ajaccio, France", league: "Ligue 2" },
|
|
44
|
-
"ajax": { location: "Amsterdam, Netherlands", league: "Eredivisie" },
|
|
45
|
-
"al-ahly": { location: "Cairo, Egypt", league: "Egyptian Premier League" },
|
|
46
|
-
"al-hilal": { location: "Riyadh, Saudi Arabia", league: "Saudi Pro League" },
|
|
47
|
-
"alajuelense": { location: "Alajuela, Costa Rica", league: "Liga FPD" },
|
|
48
|
-
"almere-city": { location: "Almere, Netherlands", league: "Eredivisie" },
|
|
49
|
-
"amiens": { location: "Amiens, France", league: "Ligue 2" },
|
|
50
|
-
"angers": { location: "Angers, France", league: "Ligue 1" },
|
|
51
|
-
"anyang": { location: "Anyang, South Korea", league: "K League 1" },
|
|
52
|
-
"argentinos-juniors": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
53
|
-
"arsenal": { location: "London, England", league: "Premier League" },
|
|
54
|
-
"aston-villa": { location: "Birmingham, England", league: "Premier League" },
|
|
55
|
-
"athletico-paranaense": { location: "Curitiba, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
56
|
-
"atlanta-united": { location: "Atlanta, USA", league: "MLS" },
|
|
57
|
-
"atlas": { location: "Guadalajara, Mexico", league: "Liga MX" },
|
|
58
|
-
"atletico-madrid": { location: "Madrid, Spain", league: "La Liga" },
|
|
59
|
-
"atletico-mineiro": { location: "Belo Horizonte, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
60
|
-
"atletico-san-luis": { location: "San Luis Potos\xED, Mexico", league: "Liga MX" },
|
|
61
|
-
"augsburg": { location: "Augsburg, Germany", league: "Bundesliga" },
|
|
62
|
-
"austin-fc": { location: "Austin, USA", league: "MLS" },
|
|
63
|
-
"auxerre": { location: "Auxerre, France", league: "Ligue 1" },
|
|
64
|
-
"avispa-fukuoka": { location: "Fukuoka, Japan", league: "J1 League" },
|
|
65
|
-
"az": { location: "Alkmaar, Netherlands", league: "Eredivisie" },
|
|
66
|
-
"bahia": { location: "Salvador, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
67
|
-
"banfield": { location: "Banfield, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
68
|
-
"barcelona": { location: "Barcelona, Spain", league: "La Liga" },
|
|
69
|
-
"bayer-leverkusen": { location: "Leverkusen, Germany", league: "Bundesliga" },
|
|
70
|
-
"bayern-munich": { location: "Munich, Germany", league: "Bundesliga" },
|
|
71
|
-
"belgrano": { location: "C\xF3rdoba, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
72
|
-
"benfica": { location: "Lisbon, Portugal", league: "Primeira Liga" },
|
|
73
|
-
"birmingham-legion": { location: "Birmingham, USA", league: "USL Championship" },
|
|
74
|
-
"boca-juniors": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
75
|
-
"bodo-glimt": { location: "Bod\xF8, Norway", league: "Eliteserien" },
|
|
76
|
-
"bordeaux": { location: "Bordeaux, France", league: "Championnat National" },
|
|
77
|
-
"borussia-dortmund": { location: "Dortmund, Germany", league: "Bundesliga" },
|
|
78
|
-
"botafogo": { location: "Rio de Janeiro, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
79
|
-
"bragantino": { location: "Bragan\xE7a Paulista, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
80
|
-
"brann": { location: "Bergen, Norway", league: "Eliteserien" },
|
|
81
|
-
"brest": { location: "Brest, France", league: "Ligue 1" },
|
|
82
|
-
"brommapojkarna": { location: "Stockholm, Sweden", league: "Allsvenskan" },
|
|
83
|
-
"brondby": { location: "Br\xF8ndby, Denmark", league: "Danish Superliga" },
|
|
84
|
-
"brooklyn-fc": { location: "Brooklyn, USA", league: "USL Championship" },
|
|
85
|
-
"bucheon": { location: "Bucheon, South Korea", league: "K League 2" },
|
|
86
|
-
"caen": { location: "Caen, France", league: "Ligue 2" },
|
|
87
|
-
"cambuur": { location: "Leeuwarden, Netherlands", league: "Eerste Divisie" },
|
|
88
|
-
"carmelita": { location: "Alajuela, Costa Rica", league: "Liga de Ascenso" },
|
|
89
|
-
"cartagines": { location: "Cartago, Costa Rica", league: "Liga FPD" },
|
|
90
|
-
"ceara": { location: "Fortaleza, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
91
|
-
"celtic": { location: "Glasgow, Scotland", league: "Scottish Premiership" },
|
|
92
|
-
"central-cordoba": { location: "Santiago del Estero, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
93
|
-
"cerezo-osaka": { location: "Osaka, Japan", league: "J1 League" },
|
|
94
|
-
"cf-montreal": { location: "Montreal, Canada", league: "MLS" },
|
|
95
|
-
"charleston-battery": { location: "Charleston, USA", league: "USL Championship" },
|
|
96
|
-
"charlotte-fc": { location: "Charlotte, USA", league: "MLS" },
|
|
97
|
-
"chelsea": { location: "London, England", league: "Premier League" },
|
|
98
|
-
"chicago-fire": { location: "Chicago, USA", league: "MLS" },
|
|
99
|
-
"chivas": { location: "Guadalajara, Mexico", league: "Liga MX" },
|
|
100
|
-
"clermont": { location: "Clermont-Ferrand, France", league: "Ligue 2" },
|
|
101
|
-
"club-america": { location: "Mexico City, Mexico", league: "Liga MX" },
|
|
102
|
-
"cologne": { location: "Cologne, Germany", league: "Bundesliga" },
|
|
103
|
-
"colorado-rapids": { location: "Commerce City, USA", league: "MLS" },
|
|
104
|
-
"columbus-crew": { location: "Columbus, USA", league: "MLS" },
|
|
105
|
-
"corinthians": { location: "S\xE3o Paulo, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
106
|
-
"cruz-azul": { location: "Mexico City, Mexico", league: "Liga MX" },
|
|
107
|
-
"cruzeiro": { location: "Belo Horizonte, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
108
|
-
"daejeon": { location: "Daejeon, South Korea", league: "K League 1" },
|
|
109
|
-
"dc-united": { location: "Washington, D.C., USA", league: "MLS" },
|
|
110
|
-
"defensa-y-justicia": { location: "Florencio Varela, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
111
|
-
"degerfors": { location: "Degerfors, Sweden", league: "Allsvenskan" },
|
|
112
|
-
"detroit-city": { location: "Detroit, USA", league: "USL Championship" },
|
|
113
|
-
"dijon": { location: "Dijon, France", league: "Championnat National" },
|
|
114
|
-
"djurgarden": { location: "Stockholm, Sweden", league: "Allsvenskan" },
|
|
115
|
-
"dundee": { location: "Dundee, Scotland", league: "Scottish Premiership" },
|
|
116
|
-
"dundee-united": { location: "Dundee, Scotland", league: "Scottish Premiership" },
|
|
117
|
-
"dynamo-kyiv": { location: "Kyiv, Ukraine", league: "Ukrainian Premier League" },
|
|
118
|
-
"eintracht-frankfurt": { location: "Frankfurt, Germany", league: "Bundesliga" },
|
|
119
|
-
"el-paso-locomotive": { location: "El Paso, USA", league: "USL Championship" },
|
|
120
|
-
"elfsborg": { location: "Bor\xE5s, Sweden", league: "Allsvenskan" },
|
|
121
|
-
"emmen": { location: "Emmen, Netherlands", league: "Eerste Divisie" },
|
|
122
|
-
"esbjerg": { location: "Esbjerg, Denmark", league: "Danish 1st Division" },
|
|
123
|
-
"estudiantes": { location: "La Plata, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
124
|
-
"everton": { location: "Liverpool, England", league: "Premier League" },
|
|
125
|
-
"excelsior": { location: "Rotterdam, Netherlands", league: "Eerste Divisie" },
|
|
126
|
-
"fagiano-okayama": { location: "Okayama, Japan", league: "J1 League" },
|
|
127
|
-
"falkirk": { location: "Falkirk, Scotland", league: "Scottish Championship" },
|
|
128
|
-
"fc-cincinnati": { location: "Cincinnati, USA", league: "MLS" },
|
|
129
|
-
"fc-copenhagen": { location: "Copenhagen, Denmark", league: "Danish Superliga" },
|
|
130
|
-
"fc-dallas": { location: "Frisco, USA", league: "MLS" },
|
|
131
|
-
"fc-seoul": { location: "Seoul, South Korea", league: "K League 1" },
|
|
132
|
-
"fc-tokyo": { location: "Tokyo, Japan", league: "J1 League" },
|
|
133
|
-
"fc-tulsa": { location: "Tulsa, USA", league: "USL Championship" },
|
|
134
|
-
"feyenoord": { location: "Rotterdam, Netherlands", league: "Eredivisie" },
|
|
135
|
-
"flamengo": { location: "Rio de Janeiro, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
136
|
-
"fluminense": { location: "Rio de Janeiro, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
137
|
-
"fortaleza": { location: "Fortaleza, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
138
|
-
"fortuna-sittard": { location: "Sittard, Netherlands", league: "Eredivisie" },
|
|
139
|
-
"fredrikstad": { location: "Fredrikstad, Norway", league: "Eliteserien" },
|
|
140
|
-
"freiburg": { location: "Freiburg, Germany", league: "Bundesliga" },
|
|
141
|
-
"gais": { location: "Gothenburg, Sweden", league: "Allsvenskan" },
|
|
142
|
-
"galatasaray": { location: "Istanbul, Turkey", league: "S\xFCper Lig" },
|
|
143
|
-
"gamba-osaka": { location: "Osaka, Japan", league: "J1 League" },
|
|
144
|
-
"gangwon": { location: "Gangneung, South Korea", league: "K League 1" },
|
|
145
|
-
"gimcheon-sangmu": { location: "Gimcheon, South Korea", league: "K League 1" },
|
|
146
|
-
"gimnasia": { location: "La Plata, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
147
|
-
"gladbach": { location: "M\xF6nchengladbach, Germany", league: "Bundesliga" },
|
|
148
|
-
"go-ahead-eagles": { location: "Deventer, Netherlands", league: "Eredivisie" },
|
|
149
|
-
"godoy-cruz": { location: "Mendoza, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
150
|
-
"gremio": { location: "Porto Alegre, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
151
|
-
"groningen": { location: "Groningen, Netherlands", league: "Eredivisie" },
|
|
152
|
-
"guadalupe": { location: "Goicoechea, Costa Rica", league: "Liga de Ascenso" },
|
|
153
|
-
"guanacasteca": { location: "Nicoya, Costa Rica", league: "Liga FPD" },
|
|
154
|
-
"guingamp": { location: "Guingamp, France", league: "Ligue 2" },
|
|
155
|
-
"gwangju": { location: "Gwangju, South Korea", league: "K League 1" },
|
|
156
|
-
"hacken": { location: "Gothenburg, Sweden", league: "Allsvenskan" },
|
|
157
|
-
"halmstad": { location: "Halmstad, Sweden", league: "Allsvenskan" },
|
|
158
|
-
"hamburg": { location: "Hamburg, Germany", league: "2. Bundesliga" },
|
|
159
|
-
"hammarby": { location: "Stockholm, Sweden", league: "Allsvenskan" },
|
|
160
|
-
"hartford-athletic": { location: "Hartford, USA", league: "USL Championship" },
|
|
161
|
-
"haugesund": { location: "Haugesund, Norway", league: "Eliteserien" },
|
|
162
|
-
"hearts": { location: "Edinburgh, Scotland", league: "Scottish Premiership" },
|
|
163
|
-
"heerenveen": { location: "Heerenveen, Netherlands", league: "Eredivisie" },
|
|
164
|
-
"heidenheim": { location: "Heidenheim, Germany", league: "Bundesliga" },
|
|
165
|
-
"helsingborg": { location: "Helsingborg, Sweden", league: "Superettan" },
|
|
166
|
-
"heracles": { location: "Almelo, Netherlands", league: "Eredivisie" },
|
|
167
|
-
"herediano": { location: "Heredia, Costa Rica", league: "Liga FPD" },
|
|
168
|
-
"hibernian": { location: "Edinburgh, Scotland", league: "Scottish Premiership" },
|
|
169
|
-
"hoffenheim": { location: "Sinsheim, Germany", league: "Bundesliga" },
|
|
170
|
-
"horsens": { location: "Horsens, Denmark", league: "Danish 1st Division" },
|
|
171
|
-
"houston-dynamo": { location: "Houston, USA", league: "MLS" },
|
|
172
|
-
"huracan": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
173
|
-
"ifk-goteborg": { location: "Gothenburg, Sweden", league: "Allsvenskan" },
|
|
174
|
-
"norrkoping": { location: "Norrk\xF6ping, Sweden", league: "Allsvenskan" },
|
|
175
|
-
"incheon-united": { location: "Incheon, South Korea", league: "K League 1" },
|
|
176
|
-
"independiente": { location: "Avellaneda, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
177
|
-
"indy-eleven": { location: "Indianapolis, USA", league: "USL Championship" },
|
|
178
|
-
"instituto": { location: "C\xF3rdoba, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
179
|
-
"inter-miami": { location: "Fort Lauderdale, USA", league: "MLS" },
|
|
180
|
-
"inter-milan": { location: "Milan, Italy", league: "Serie A" },
|
|
181
|
-
"internacional": { location: "Porto Alegre, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
182
|
-
"jef-united": { location: "Chiba, Japan", league: "J2 League" },
|
|
183
|
-
"jeju-sk": { location: "Jeju, South Korea", league: "K League 1" },
|
|
184
|
-
"jeonbuk": { location: "Jeonju, South Korea", league: "K League 1" },
|
|
185
|
-
"juarez": { location: "Ciudad Ju\xE1rez, Mexico", league: "Liga MX" },
|
|
186
|
-
"juventude": { location: "Caxias do Sul, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
187
|
-
"juventus": { location: "Turin, Italy", league: "Serie A" },
|
|
188
|
-
"kalmar": { location: "Kalmar, Sweden", league: "Superettan" },
|
|
189
|
-
"kashima-antlers": { location: "Kashima, Japan", league: "J1 League" },
|
|
190
|
-
"kashiwa-reysol": { location: "Kashiwa, Japan", league: "J1 League" },
|
|
191
|
-
"kawasaki-frontale": { location: "Kawasaki, Japan", league: "J1 League" },
|
|
192
|
-
"kfum-oslo": { location: "Oslo, Norway", league: "Eliteserien" },
|
|
193
|
-
"kilmarnock": { location: "Kilmarnock, Scotland", league: "Scottish Premiership" },
|
|
194
|
-
"kristiansund": { location: "Kristiansund, Norway", league: "Eliteserien" },
|
|
195
|
-
"kyoto-sanga": { location: "Kyoto, Japan", league: "J1 League" },
|
|
196
|
-
"la-galaxy": { location: "Carson, USA", league: "MLS" },
|
|
197
|
-
"lafc": { location: "Los Angeles, USA", league: "MLS" },
|
|
198
|
-
"lanus": { location: "Lan\xFAs, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
199
|
-
"las-vegas-lights": { location: "Las Vegas, USA", league: "USL Championship" },
|
|
200
|
-
"lazio": { location: "Rome, Italy", league: "Serie A" },
|
|
201
|
-
"le-havre": { location: "Le Havre, France", league: "Ligue 1" },
|
|
202
|
-
"le-mans": { location: "Le Mans, France", league: "Ligue 2" },
|
|
203
|
-
"leeds-united": { location: "Leeds, England", league: "Premier League" },
|
|
204
|
-
"leicester-city": { location: "Leicester, England", league: "Championship" },
|
|
205
|
-
"lens": { location: "Lens, France", league: "Ligue 1" },
|
|
206
|
-
"leon": { location: "Le\xF3n, Mexico", league: "Liga MX" },
|
|
207
|
-
"lexington-sc": { location: "Lexington, USA", league: "USL Championship" },
|
|
208
|
-
"liberia": { location: "Liberia, Costa Rica", league: "Liga FPD" },
|
|
209
|
-
"lille": { location: "Lille, France", league: "Ligue 1" },
|
|
210
|
-
"lillestrom": { location: "Lillestr\xF8m, Norway", league: "Eliteserien" },
|
|
211
|
-
"limon": { location: "Lim\xF3n, Costa Rica", league: "Liga de Ascenso" },
|
|
212
|
-
"liverpool": { location: "Liverpool, England", league: "Premier League" },
|
|
213
|
-
"livingston": { location: "Livingston, Scotland", league: "Scottish Championship" },
|
|
214
|
-
"lorient": { location: "Lorient, France", league: "Ligue 1" },
|
|
215
|
-
"loudoun-united": { location: "Leesburg, USA", league: "USL Championship" },
|
|
216
|
-
"louisville-city": { location: "Louisville, USA", league: "USL Championship" },
|
|
217
|
-
"lyngby": { location: "Kongens Lyngby, Denmark", league: "Danish Superliga" },
|
|
218
|
-
"lyon": { location: "Lyon, France", league: "Ligue 1" },
|
|
219
|
-
"machida-zelvia": { location: "Machida, Japan", league: "J1 League" },
|
|
220
|
-
"mainz": { location: "Mainz, Germany", league: "Bundesliga" },
|
|
221
|
-
"malmo": { location: "Malm\xF6, Sweden", league: "Allsvenskan" },
|
|
222
|
-
"manchester-city": { location: "Manchester, England", league: "Premier League" },
|
|
223
|
-
"manchester-united": { location: "Manchester, England", league: "Premier League" },
|
|
224
|
-
"marseille": { location: "Marseille, France", league: "Ligue 1" },
|
|
225
|
-
"mazatlan": { location: "Mazatl\xE1n, Mexico", league: "Liga MX" },
|
|
226
|
-
"metz": { location: "Metz, France", league: "Ligue 1" },
|
|
227
|
-
"miami-fc": { location: "Miami, USA", league: "USL Championship" },
|
|
228
|
-
"midtjylland": { location: "Herning, Denmark", league: "Danish Superliga" },
|
|
229
|
-
"minnesota-united": { location: "Saint Paul, USA", league: "MLS" },
|
|
230
|
-
"mirassol": { location: "Mirassol, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
231
|
-
"mito-hollyhock": { location: "Mito, Japan", league: "J2 League" },
|
|
232
|
-
"mjallby": { location: "H\xE4llevik, Sweden", league: "Allsvenskan" },
|
|
233
|
-
"molde": { location: "Molde, Norway", league: "Eliteserien" },
|
|
234
|
-
"monaco": { location: "Monaco", league: "Ligue 1" },
|
|
235
|
-
"monterey-bay": { location: "Monterey, USA", league: "USL Championship" },
|
|
236
|
-
"monterrey": { location: "Monterrey, Mexico", league: "Liga MX" },
|
|
237
|
-
"montpellier": { location: "Montpellier, France", league: "Ligue 2" },
|
|
238
|
-
"motherwell": { location: "Motherwell, Scotland", league: "Scottish Premiership" },
|
|
239
|
-
"grecia": { location: "Grecia, Costa Rica", league: "Liga de Ascenso" },
|
|
240
|
-
"nac-breda": { location: "Breda, Netherlands", league: "Eredivisie" },
|
|
241
|
-
"nagoya-grampus": { location: "Nagoya, Japan", league: "J1 League" },
|
|
242
|
-
"nancy": { location: "Nancy, France", league: "Ligue 2" },
|
|
243
|
-
"nantes": { location: "Nantes, France", league: "Ligue 1" },
|
|
244
|
-
"napoli": { location: "Naples, Italy", league: "Serie A" },
|
|
245
|
-
"nashville-sc": { location: "Nashville, USA", league: "MLS" },
|
|
246
|
-
"nec": { location: "Nijmegen, Netherlands", league: "Eredivisie" },
|
|
247
|
-
"necaxa": { location: "Aguascalientes, Mexico", league: "Liga MX" },
|
|
248
|
-
"new-england": { location: "Foxborough, USA", league: "MLS" },
|
|
249
|
-
"new-mexico-united": { location: "Albuquerque, USA", league: "USL Championship" },
|
|
250
|
-
"newcastle": { location: "Newcastle, England", league: "Premier League" },
|
|
251
|
-
"newells": { location: "Rosario, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
252
|
-
"nice": { location: "Nice, France", league: "Ligue 1" },
|
|
253
|
-
"nimes": { location: "N\xEEmes, France", league: "Championnat National" },
|
|
254
|
-
"nordsjaelland": { location: "Farum, Denmark", league: "Danish Superliga" },
|
|
255
|
-
"ny-red-bulls": { location: "Harrison, USA", league: "MLS" },
|
|
256
|
-
"nycfc": { location: "New York City, USA", league: "MLS" },
|
|
257
|
-
"oakland-roots": { location: "Oakland, USA", league: "USL Championship" },
|
|
258
|
-
"ob-odense": { location: "Odense, Denmark", league: "Danish Superliga" },
|
|
259
|
-
"odd": { location: "Skien, Norway", league: "Norwegian First Division" },
|
|
260
|
-
"olympiacos": { location: "Piraeus, Greece", league: "Super League Greece" },
|
|
261
|
-
"orange-county-sc": { location: "Irvine, USA", league: "USL Championship" },
|
|
262
|
-
"orebro": { location: "\xD6rebro, Sweden", league: "Superettan" },
|
|
263
|
-
"orlando-city": { location: "Orlando, USA", league: "MLS" },
|
|
264
|
-
"pachuca": { location: "Pachuca, Mexico", league: "Liga MX" },
|
|
265
|
-
"palmeiras": { location: "S\xE3o Paulo, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
266
|
-
"paris-fc": { location: "Paris, France", league: "Ligue 1" },
|
|
267
|
-
"psg": { location: "Paris, France", league: "Ligue 1" },
|
|
268
|
-
"pec-zwolle": { location: "Zwolle, Netherlands", league: "Eredivisie" },
|
|
269
|
-
"perez-zeledon": { location: "San Isidro, Costa Rica", league: "Liga FPD" },
|
|
270
|
-
"philadelphia-union": { location: "Chester, USA", league: "MLS" },
|
|
271
|
-
"phoenix-rising": { location: "Phoenix, USA", league: "USL Championship" },
|
|
272
|
-
"pittsburgh-riverhounds": { location: "Pittsburgh, USA", league: "USL Championship" },
|
|
273
|
-
"platense": { location: "Florida, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
274
|
-
"pohang-steelers": { location: "Pohang, South Korea", league: "K League 1" },
|
|
275
|
-
"portland-timbers": { location: "Portland, USA", league: "MLS" },
|
|
276
|
-
"porto": { location: "Porto, Portugal", league: "Primeira Liga" },
|
|
277
|
-
"psv": { location: "Eindhoven, Netherlands", league: "Eredivisie" },
|
|
278
|
-
"puebla": { location: "Puebla, Mexico", league: "Liga MX" },
|
|
279
|
-
"pumas": { location: "Mexico City, Mexico", league: "Liga MX" },
|
|
280
|
-
"puntarenas": { location: "Puntarenas, Costa Rica", league: "Liga FPD" },
|
|
281
|
-
"queretaro": { location: "Quer\xE9taro, Mexico", league: "Liga MX" },
|
|
282
|
-
"racing": { location: "Avellaneda, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
283
|
-
"randers": { location: "Randers, Denmark", league: "Danish Superliga" },
|
|
284
|
-
"rangers": { location: "Glasgow, Scotland", league: "Scottish Premiership" },
|
|
285
|
-
"rb-leipzig": { location: "Leipzig, Germany", league: "Bundesliga" },
|
|
286
|
-
"real-madrid": { location: "Madrid, Spain", league: "La Liga" },
|
|
287
|
-
"real-salt-lake": { location: "Sandy, USA", league: "MLS" },
|
|
288
|
-
"red-star": { location: "Saint-Ouen, France", league: "Ligue 2" },
|
|
289
|
-
"reims": { location: "Reims, France", league: "Ligue 2" },
|
|
290
|
-
"rennes": { location: "Rennes, France", league: "Ligue 1" },
|
|
291
|
-
"rhode-island-fc": { location: "Pawtucket, USA", league: "USL Championship" },
|
|
292
|
-
"river-plate": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
293
|
-
"rkc": { location: "Waalwijk, Netherlands", league: "Eredivisie" },
|
|
294
|
-
"roma": { location: "Rome, Italy", league: "Serie A" },
|
|
295
|
-
"rosario-central": { location: "Rosario, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
296
|
-
"rosenborg": { location: "Trondheim, Norway", league: "Eliteserien" },
|
|
297
|
-
"sacramento-republic": { location: "Sacramento, USA", league: "USL Championship" },
|
|
298
|
-
"saint-etienne": { location: "Saint-\xC9tienne, France", league: "Ligue 2" },
|
|
299
|
-
"san-antonio-fc": { location: "San Antonio, USA", league: "USL Championship" },
|
|
300
|
-
"san-carlos": { location: "Quesada, Costa Rica", league: "Liga FPD" },
|
|
301
|
-
"san-diego-fc": { location: "San Diego, USA", league: "MLS" },
|
|
302
|
-
"san-jose-earthquakes": { location: "San Jose, USA", league: "MLS" },
|
|
303
|
-
"san-lorenzo": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
304
|
-
"sanfrecce-hiroshima": { location: "Hiroshima, Japan", league: "J1 League" },
|
|
305
|
-
"santos": { location: "Santos, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
306
|
-
"santos-guapiles": { location: "Gu\xE1piles, Costa Rica", league: "Liga FPD" },
|
|
307
|
-
"santos-laguna": { location: "Torre\xF3n, Mexico", league: "Liga MX" },
|
|
308
|
-
"sao-paulo": { location: "S\xE3o Paulo, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
309
|
-
"saprissa": { location: "San Jos\xE9, Costa Rica", league: "Liga FPD" },
|
|
310
|
-
"sarpsborg": { location: "Sarpsborg, Norway", league: "Eliteserien" },
|
|
311
|
-
"schalke": { location: "Gelsenkirchen, Germany", league: "2. Bundesliga" },
|
|
312
|
-
"seattle-sounders": { location: "Seattle, USA", league: "MLS" },
|
|
313
|
-
"sevilla": { location: "Seville, Spain", league: "La Liga" },
|
|
314
|
-
"shakhtar": { location: "Donetsk, Ukraine", league: "Ukrainian Premier League" },
|
|
315
|
-
"shimizu-s-pulse": { location: "Shizuoka, Japan", league: "J1 League" },
|
|
316
|
-
"silkeborg": { location: "Silkeborg, Denmark", league: "Danish Superliga" },
|
|
317
|
-
"sirius": { location: "Uppsala, Sweden", league: "Allsvenskan" },
|
|
318
|
-
"sochaux": { location: "Montb\xE9liard, France", league: "Championnat National" },
|
|
319
|
-
"sonderjyske": { location: "Haderslev, Denmark", league: "Danish Superliga" },
|
|
320
|
-
"sparta-rotterdam": { location: "Rotterdam, Netherlands", league: "Eredivisie" },
|
|
321
|
-
"sport-recife": { location: "Recife, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
322
|
-
"sporting": { location: "Lisbon, Portugal", league: "Primeira Liga" },
|
|
323
|
-
"sporting-jax": { location: "Jacksonville, USA", league: "MLS Next Pro" },
|
|
324
|
-
"sporting-kc": { location: "Kansas City, USA", league: "MLS" },
|
|
325
|
-
"sporting-san-jose": { location: "San Jos\xE9, Costa Rica", league: "Liga FPD" },
|
|
326
|
-
"st-mirren": { location: "Paisley, Scotland", league: "Scottish Premiership" },
|
|
327
|
-
"st-louis-city": { location: "St. Louis, USA", league: "MLS" },
|
|
328
|
-
"st-pauli": { location: "Hamburg, Germany", league: "Bundesliga" },
|
|
329
|
-
"stabaek": { location: "B\xE6rum, Norway", league: "Norwegian First Division" },
|
|
330
|
-
"strasbourg": { location: "Strasbourg, France", league: "Ligue 1" },
|
|
331
|
-
"stromsgodset": { location: "Drammen, Norway", league: "Eliteserien" },
|
|
332
|
-
"stuttgart": { location: "Stuttgart, Germany", league: "Bundesliga" },
|
|
333
|
-
"switchbacks": { location: "Colorado Springs, USA", league: "USL Championship" },
|
|
334
|
-
"talleres": { location: "C\xF3rdoba, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
335
|
-
"tampa-bay-rowdies": { location: "St. Petersburg, USA", league: "USL Championship" },
|
|
336
|
-
"tigre": { location: "Victoria, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
337
|
-
"tigres": { location: "San Nicol\xE1s de los Garza, Mexico", league: "Liga MX" },
|
|
338
|
-
"tijuana": { location: "Tijuana, Mexico", league: "Liga MX" },
|
|
339
|
-
"tokyo-verdy": { location: "Tokyo, Japan", league: "J1 League" },
|
|
340
|
-
"toluca": { location: "Toluca, Mexico", league: "Liga MX" },
|
|
341
|
-
"toronto-fc": { location: "Toronto, Canada", league: "MLS" },
|
|
342
|
-
"tottenham": { location: "London, England", league: "Premier League" },
|
|
343
|
-
"toulouse": { location: "Toulouse, France", league: "Ligue 1" },
|
|
344
|
-
"tromso": { location: "Troms\xF8, Norway", league: "Eliteserien" },
|
|
345
|
-
"troyes": { location: "Troyes, France", league: "Ligue 2" },
|
|
346
|
-
"twente": { location: "Enschede, Netherlands", league: "Eredivisie" },
|
|
347
|
-
"ulsan-hd": { location: "Ulsan, South Korea", league: "K League 1" },
|
|
348
|
-
"union": { location: "Santa Fe, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
349
|
-
"union-berlin": { location: "Berlin, Germany", league: "Bundesliga" },
|
|
350
|
-
"urawa-reds": { location: "Saitama, Japan", league: "J1 League" },
|
|
351
|
-
"utrecht": { location: "Utrecht, Netherlands", league: "Eredivisie" },
|
|
352
|
-
"v-varen-nagasaki": { location: "Nagasaki, Japan", league: "J2 League" },
|
|
353
|
-
"valencia": { location: "Valencia, Spain", league: "La Liga" },
|
|
354
|
-
"valerenga": { location: "Oslo, Norway", league: "Eliteserien" },
|
|
355
|
-
"vancouver-whitecaps": { location: "Vancouver, Canada", league: "MLS" },
|
|
356
|
-
"varnamo": { location: "V\xE4rnamo, Sweden", league: "Allsvenskan" },
|
|
357
|
-
"vasco": { location: "Rio de Janeiro, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
358
|
-
"vejle": { location: "Vejle, Denmark", league: "Danish Superliga" },
|
|
359
|
-
"velez": { location: "Buenos Aires, Argentina", league: "Argentine Primera Divisi\xF3n" },
|
|
360
|
-
"viborg": { location: "Viborg, Denmark", league: "Danish Superliga" },
|
|
361
|
-
"viking": { location: "Stavanger, Norway", league: "Eliteserien" },
|
|
362
|
-
"vissel-kobe": { location: "Kobe, Japan", league: "J1 League" },
|
|
363
|
-
"vitesse": { location: "Arnhem, Netherlands", league: "Eerste Divisie" },
|
|
364
|
-
"vitoria": { location: "Salvador, Brazil", league: "Brasileir\xE3o S\xE9rie A" },
|
|
365
|
-
"volendam": { location: "Volendam, Netherlands", league: "Eredivisie" },
|
|
366
|
-
"werder-bremen": { location: "Bremen, Germany", league: "Bundesliga" },
|
|
367
|
-
"west-ham": { location: "London, England", league: "Premier League" },
|
|
368
|
-
"willem-ii": { location: "Tilburg, Netherlands", league: "Eerste Divisie" },
|
|
369
|
-
"wolfsburg": { location: "Wolfsburg, Germany", league: "Bundesliga" },
|
|
370
|
-
"yokohama-marinos": { location: "Yokohama, Japan", league: "J1 League" }
|
|
371
|
-
};
|
|
372
|
-
|
|
373
|
-
// src/git/teams.ts
|
|
374
|
-
function withMeta(seed) {
|
|
375
|
-
const baseSlug = seed.slug.replace(/-\d+$/, "");
|
|
376
|
-
const meta = SOCCER_TEAM_META[baseSlug];
|
|
377
|
-
return {
|
|
378
|
-
name: seed.name,
|
|
379
|
-
slug: seed.slug,
|
|
380
|
-
location: meta?.location ?? "Unknown",
|
|
381
|
-
league: meta?.league ?? "Unknown league"
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
var FAMOUS_SOCCER_TEAM_SEEDS = [
|
|
385
|
-
{ name: "Aalborg", slug: "aalborg" },
|
|
386
|
-
{ name: "Aalesund", slug: "aalesund" },
|
|
387
|
-
{ name: "Aarhus", slug: "aarhus" },
|
|
388
|
-
{ name: "Aberdeen", slug: "aberdeen" },
|
|
389
|
-
{ name: "AC Milan", slug: "ac-milan" },
|
|
390
|
-
{ name: "ADO Den Haag", slug: "ado-den-haag" },
|
|
391
|
-
{ name: "AIK", slug: "aik" },
|
|
392
|
-
{ name: "Ajaccio", slug: "ajaccio" },
|
|
393
|
-
{ name: "Ajax", slug: "ajax" },
|
|
394
|
-
{ name: "Al Ahly", slug: "al-ahly" },
|
|
395
|
-
{ name: "Al Hilal", slug: "al-hilal" },
|
|
396
|
-
{ name: "Alajuelense", slug: "alajuelense" },
|
|
397
|
-
{ name: "Almere City", slug: "almere-city" },
|
|
398
|
-
{ name: "Amiens", slug: "amiens" },
|
|
399
|
-
{ name: "Angers", slug: "angers" },
|
|
400
|
-
{ name: "Anyang", slug: "anyang" },
|
|
401
|
-
{ name: "Argentinos Juniors", slug: "argentinos-juniors" },
|
|
402
|
-
{ name: "Arsenal", slug: "arsenal" },
|
|
403
|
-
{ name: "Aston Villa", slug: "aston-villa" },
|
|
404
|
-
{ name: "Athletico Paranaense", slug: "athletico-paranaense" },
|
|
405
|
-
{ name: "Atlanta United", slug: "atlanta-united" },
|
|
406
|
-
{ name: "Atlas", slug: "atlas" },
|
|
407
|
-
{ name: "Atl\xE9tico Madrid", slug: "atletico-madrid" },
|
|
408
|
-
{ name: "Atl\xE9tico Mineiro", slug: "atletico-mineiro" },
|
|
409
|
-
{ name: "Atl\xE9tico San Luis", slug: "atletico-san-luis" },
|
|
410
|
-
{ name: "Augsburg", slug: "augsburg" },
|
|
411
|
-
{ name: "Austin FC", slug: "austin-fc" },
|
|
412
|
-
{ name: "Auxerre", slug: "auxerre" },
|
|
413
|
-
{ name: "Avispa Fukuoka", slug: "avispa-fukuoka" },
|
|
414
|
-
{ name: "AZ Alkmaar", slug: "az" },
|
|
415
|
-
{ name: "Bahia", slug: "bahia" },
|
|
416
|
-
{ name: "Banfield", slug: "banfield" },
|
|
417
|
-
{ name: "Barcelona", slug: "barcelona" },
|
|
418
|
-
{ name: "Bayer Leverkusen", slug: "bayer-leverkusen" },
|
|
419
|
-
{ name: "Bayern Munich", slug: "bayern-munich" },
|
|
420
|
-
{ name: "Belgrano", slug: "belgrano" },
|
|
421
|
-
{ name: "Benfica", slug: "benfica" },
|
|
422
|
-
{ name: "Birmingham Legion", slug: "birmingham-legion" },
|
|
423
|
-
{ name: "Boca Juniors", slug: "boca-juniors" },
|
|
424
|
-
{ name: "Bod\xF8/Glimt", slug: "bodo-glimt" },
|
|
425
|
-
{ name: "Bordeaux", slug: "bordeaux" },
|
|
426
|
-
{ name: "Borussia Dortmund", slug: "borussia-dortmund" },
|
|
427
|
-
{ name: "Botafogo", slug: "botafogo" },
|
|
428
|
-
{ name: "Bragantino", slug: "bragantino" },
|
|
429
|
-
{ name: "Brann", slug: "brann" },
|
|
430
|
-
{ name: "Brest", slug: "brest" },
|
|
431
|
-
{ name: "Brommapojkarna", slug: "brommapojkarna" },
|
|
432
|
-
{ name: "Br\xF8ndby", slug: "brondby" },
|
|
433
|
-
{ name: "Brooklyn FC", slug: "brooklyn-fc" },
|
|
434
|
-
{ name: "Bucheon", slug: "bucheon" },
|
|
435
|
-
{ name: "Caen", slug: "caen" },
|
|
436
|
-
{ name: "Cambuur", slug: "cambuur" },
|
|
437
|
-
{ name: "Carmelita", slug: "carmelita" },
|
|
438
|
-
{ name: "Cartagin\xE9s", slug: "cartagines" },
|
|
439
|
-
{ name: "Cear\xE1", slug: "ceara" },
|
|
440
|
-
{ name: "Celtic", slug: "celtic" },
|
|
441
|
-
{ name: "Central C\xF3rdoba", slug: "central-cordoba" },
|
|
442
|
-
{ name: "Cerezo Osaka", slug: "cerezo-osaka" },
|
|
443
|
-
{ name: "CF Montr\xE9al", slug: "cf-montreal" },
|
|
444
|
-
{ name: "Charleston Battery", slug: "charleston-battery" },
|
|
445
|
-
{ name: "Charlotte FC", slug: "charlotte-fc" },
|
|
446
|
-
{ name: "Chelsea", slug: "chelsea" },
|
|
447
|
-
{ name: "Chicago Fire", slug: "chicago-fire" },
|
|
448
|
-
{ name: "Chivas", slug: "chivas" },
|
|
449
|
-
{ name: "Clermont", slug: "clermont" },
|
|
450
|
-
{ name: "Club Am\xE9rica", slug: "club-america" },
|
|
451
|
-
{ name: "Cologne", slug: "cologne" },
|
|
452
|
-
{ name: "Colorado Rapids", slug: "colorado-rapids" },
|
|
453
|
-
{ name: "Columbus Crew", slug: "columbus-crew" },
|
|
454
|
-
{ name: "Corinthians", slug: "corinthians" },
|
|
455
|
-
{ name: "Cruz Azul", slug: "cruz-azul" },
|
|
456
|
-
{ name: "Cruzeiro", slug: "cruzeiro" },
|
|
457
|
-
{ name: "Daejeon", slug: "daejeon" },
|
|
458
|
-
{ name: "DC United", slug: "dc-united" },
|
|
459
|
-
{ name: "Defensa y Justicia", slug: "defensa-y-justicia" },
|
|
460
|
-
{ name: "Degerfors", slug: "degerfors" },
|
|
461
|
-
{ name: "Detroit City", slug: "detroit-city" },
|
|
462
|
-
{ name: "Dijon", slug: "dijon" },
|
|
463
|
-
{ name: "Djurg\xE5rden", slug: "djurgarden" },
|
|
464
|
-
{ name: "Dundee", slug: "dundee" },
|
|
465
|
-
{ name: "Dundee United", slug: "dundee-united" },
|
|
466
|
-
{ name: "Dynamo Kyiv", slug: "dynamo-kyiv" },
|
|
467
|
-
{ name: "Eintracht Frankfurt", slug: "eintracht-frankfurt" },
|
|
468
|
-
{ name: "El Paso Locomotive", slug: "el-paso-locomotive" },
|
|
469
|
-
{ name: "Elfsborg", slug: "elfsborg" },
|
|
470
|
-
{ name: "Emmen", slug: "emmen" },
|
|
471
|
-
{ name: "Esbjerg", slug: "esbjerg" },
|
|
472
|
-
{ name: "Estudiantes", slug: "estudiantes" },
|
|
473
|
-
{ name: "Everton", slug: "everton" },
|
|
474
|
-
{ name: "Excelsior", slug: "excelsior" },
|
|
475
|
-
{ name: "Fagiano Okayama", slug: "fagiano-okayama" },
|
|
476
|
-
{ name: "Falkirk", slug: "falkirk" },
|
|
477
|
-
{ name: "FC Cincinnati", slug: "fc-cincinnati" },
|
|
478
|
-
{ name: "FC Copenhagen", slug: "fc-copenhagen" },
|
|
479
|
-
{ name: "FC Dallas", slug: "fc-dallas" },
|
|
480
|
-
{ name: "FC Seoul", slug: "fc-seoul" },
|
|
481
|
-
{ name: "FC Tokyo", slug: "fc-tokyo" },
|
|
482
|
-
{ name: "FC Tulsa", slug: "fc-tulsa" },
|
|
483
|
-
{ name: "Feyenoord", slug: "feyenoord" },
|
|
484
|
-
{ name: "Flamengo", slug: "flamengo" },
|
|
485
|
-
{ name: "Fluminense", slug: "fluminense" },
|
|
486
|
-
{ name: "Fortaleza", slug: "fortaleza" },
|
|
487
|
-
{ name: "Fortuna Sittard", slug: "fortuna-sittard" },
|
|
488
|
-
{ name: "Fredrikstad", slug: "fredrikstad" },
|
|
489
|
-
{ name: "Freiburg", slug: "freiburg" },
|
|
490
|
-
{ name: "GAIS", slug: "gais" },
|
|
491
|
-
{ name: "Galatasaray", slug: "galatasaray" },
|
|
492
|
-
{ name: "Gamba Osaka", slug: "gamba-osaka" },
|
|
493
|
-
{ name: "Gangwon", slug: "gangwon" },
|
|
494
|
-
{ name: "Gimcheon Sangmu", slug: "gimcheon-sangmu" },
|
|
495
|
-
{ name: "Gimnasia", slug: "gimnasia" },
|
|
496
|
-
{ name: "Gladbach", slug: "gladbach" },
|
|
497
|
-
{ name: "Go Ahead Eagles", slug: "go-ahead-eagles" },
|
|
498
|
-
{ name: "Godoy Cruz", slug: "godoy-cruz" },
|
|
499
|
-
{ name: "Gr\xEAmio", slug: "gremio" },
|
|
500
|
-
{ name: "Groningen", slug: "groningen" },
|
|
501
|
-
{ name: "Guadalupe", slug: "guadalupe" },
|
|
502
|
-
{ name: "Guanacasteca", slug: "guanacasteca" },
|
|
503
|
-
{ name: "Guingamp", slug: "guingamp" },
|
|
504
|
-
{ name: "Gwangju", slug: "gwangju" },
|
|
505
|
-
{ name: "H\xE4cken", slug: "hacken" },
|
|
506
|
-
{ name: "Halmstad", slug: "halmstad" },
|
|
507
|
-
{ name: "Hamburg", slug: "hamburg" },
|
|
508
|
-
{ name: "Hammarby", slug: "hammarby" },
|
|
509
|
-
{ name: "Hartford Athletic", slug: "hartford-athletic" },
|
|
510
|
-
{ name: "Haugesund", slug: "haugesund" },
|
|
511
|
-
{ name: "Hearts", slug: "hearts" },
|
|
512
|
-
{ name: "Heerenveen", slug: "heerenveen" },
|
|
513
|
-
{ name: "Heidenheim", slug: "heidenheim" },
|
|
514
|
-
{ name: "Helsingborg", slug: "helsingborg" },
|
|
515
|
-
{ name: "Heracles", slug: "heracles" },
|
|
516
|
-
{ name: "Herediano", slug: "herediano" },
|
|
517
|
-
{ name: "Hibernian", slug: "hibernian" },
|
|
518
|
-
{ name: "Hoffenheim", slug: "hoffenheim" },
|
|
519
|
-
{ name: "Horsens", slug: "horsens" },
|
|
520
|
-
{ name: "Houston Dynamo", slug: "houston-dynamo" },
|
|
521
|
-
{ name: "Hurac\xE1n", slug: "huracan" },
|
|
522
|
-
{ name: "IFK G\xF6teborg", slug: "ifk-goteborg" },
|
|
523
|
-
{ name: "IFK Norrk\xF6ping", slug: "norrkoping" },
|
|
524
|
-
{ name: "Incheon United", slug: "incheon-united" },
|
|
525
|
-
{ name: "Independiente", slug: "independiente" },
|
|
526
|
-
{ name: "Indy Eleven", slug: "indy-eleven" },
|
|
527
|
-
{ name: "Instituto", slug: "instituto" },
|
|
528
|
-
{ name: "Inter Miami", slug: "inter-miami" },
|
|
529
|
-
{ name: "Inter Milan", slug: "inter-milan" },
|
|
530
|
-
{ name: "Internacional", slug: "internacional" },
|
|
531
|
-
{ name: "JEF United", slug: "jef-united" },
|
|
532
|
-
{ name: "Jeju SK", slug: "jeju-sk" },
|
|
533
|
-
{ name: "Jeonbuk", slug: "jeonbuk" },
|
|
534
|
-
{ name: "Ju\xE1rez", slug: "juarez" },
|
|
535
|
-
{ name: "Juventude", slug: "juventude" },
|
|
536
|
-
{ name: "Juventus", slug: "juventus" },
|
|
537
|
-
{ name: "Kalmar FF", slug: "kalmar" },
|
|
538
|
-
{ name: "Kashima Antlers", slug: "kashima-antlers" },
|
|
539
|
-
{ name: "Kashiwa Reysol", slug: "kashiwa-reysol" },
|
|
540
|
-
{ name: "Kawasaki Frontale", slug: "kawasaki-frontale" },
|
|
541
|
-
{ name: "KFUM Oslo", slug: "kfum-oslo" },
|
|
542
|
-
{ name: "Kilmarnock", slug: "kilmarnock" },
|
|
543
|
-
{ name: "Kristiansund", slug: "kristiansund" },
|
|
544
|
-
{ name: "Kyoto Sanga", slug: "kyoto-sanga" },
|
|
545
|
-
{ name: "LA Galaxy", slug: "la-galaxy" },
|
|
546
|
-
{ name: "LAFC", slug: "lafc" },
|
|
547
|
-
{ name: "Lan\xFAs", slug: "lanus" },
|
|
548
|
-
{ name: "Las Vegas Lights", slug: "las-vegas-lights" },
|
|
549
|
-
{ name: "Lazio", slug: "lazio" },
|
|
550
|
-
{ name: "Le Havre", slug: "le-havre" },
|
|
551
|
-
{ name: "Le Mans", slug: "le-mans" },
|
|
552
|
-
{ name: "Leeds United", slug: "leeds-united" },
|
|
553
|
-
{ name: "Leicester City", slug: "leicester-city" },
|
|
554
|
-
{ name: "Lens", slug: "lens" },
|
|
555
|
-
{ name: "Le\xF3n", slug: "leon" },
|
|
556
|
-
{ name: "Lexington SC", slug: "lexington-sc" },
|
|
557
|
-
{ name: "Liberia", slug: "liberia" },
|
|
558
|
-
{ name: "Lille", slug: "lille" },
|
|
559
|
-
{ name: "Lillestr\xF8m", slug: "lillestrom" },
|
|
560
|
-
{ name: "Lim\xF3n", slug: "limon" },
|
|
561
|
-
{ name: "Liverpool", slug: "liverpool" },
|
|
562
|
-
{ name: "Livingston", slug: "livingston" },
|
|
563
|
-
{ name: "Lorient", slug: "lorient" },
|
|
564
|
-
{ name: "Loudoun United", slug: "loudoun-united" },
|
|
565
|
-
{ name: "Louisville City", slug: "louisville-city" },
|
|
566
|
-
{ name: "Lyngby", slug: "lyngby" },
|
|
567
|
-
{ name: "Lyon", slug: "lyon" },
|
|
568
|
-
{ name: "Machida Zelvia", slug: "machida-zelvia" },
|
|
569
|
-
{ name: "Mainz", slug: "mainz" },
|
|
570
|
-
{ name: "Malm\xF6 FF", slug: "malmo" },
|
|
571
|
-
{ name: "Manchester City", slug: "manchester-city" },
|
|
572
|
-
{ name: "Manchester United", slug: "manchester-united" },
|
|
573
|
-
{ name: "Marseille", slug: "marseille" },
|
|
574
|
-
{ name: "Mazatl\xE1n", slug: "mazatlan" },
|
|
575
|
-
{ name: "Metz", slug: "metz" },
|
|
576
|
-
{ name: "Miami FC", slug: "miami-fc" },
|
|
577
|
-
{ name: "Midtjylland", slug: "midtjylland" },
|
|
578
|
-
{ name: "Minnesota United", slug: "minnesota-united" },
|
|
579
|
-
{ name: "Mirassol", slug: "mirassol" },
|
|
580
|
-
{ name: "Mito Hollyhock", slug: "mito-hollyhock" },
|
|
581
|
-
{ name: "Mj\xE4llby", slug: "mjallby" },
|
|
582
|
-
{ name: "Molde", slug: "molde" },
|
|
583
|
-
{ name: "Monaco", slug: "monaco" },
|
|
584
|
-
{ name: "Monterey Bay", slug: "monterey-bay" },
|
|
585
|
-
{ name: "Monterrey", slug: "monterrey" },
|
|
586
|
-
{ name: "Montpellier", slug: "montpellier" },
|
|
587
|
-
{ name: "Motherwell", slug: "motherwell" },
|
|
588
|
-
{ name: "Municipal Grecia", slug: "grecia" },
|
|
589
|
-
{ name: "NAC Breda", slug: "nac-breda" },
|
|
590
|
-
{ name: "Nagoya Grampus", slug: "nagoya-grampus" },
|
|
591
|
-
{ name: "Nancy", slug: "nancy" },
|
|
592
|
-
{ name: "Nantes", slug: "nantes" },
|
|
593
|
-
{ name: "Napoli", slug: "napoli" },
|
|
594
|
-
{ name: "Nashville SC", slug: "nashville-sc" },
|
|
595
|
-
{ name: "NEC Nijmegen", slug: "nec" },
|
|
596
|
-
{ name: "Necaxa", slug: "necaxa" },
|
|
597
|
-
{ name: "New England", slug: "new-england" },
|
|
598
|
-
{ name: "New Mexico United", slug: "new-mexico-united" },
|
|
599
|
-
{ name: "Newcastle", slug: "newcastle" },
|
|
600
|
-
{ name: "Newell's Old Boys", slug: "newells" },
|
|
601
|
-
{ name: "Nice", slug: "nice" },
|
|
602
|
-
{ name: "N\xEEmes", slug: "nimes" },
|
|
603
|
-
{ name: "Nordsj\xE6lland", slug: "nordsjaelland" },
|
|
604
|
-
{ name: "NY Red Bulls", slug: "ny-red-bulls" },
|
|
605
|
-
{ name: "NYCFC", slug: "nycfc" },
|
|
606
|
-
{ name: "Oakland Roots", slug: "oakland-roots" },
|
|
607
|
-
{ name: "OB Odense", slug: "ob-odense" },
|
|
608
|
-
{ name: "Odd", slug: "odd" },
|
|
609
|
-
{ name: "Olympiacos", slug: "olympiacos" },
|
|
610
|
-
{ name: "Orange County SC", slug: "orange-county-sc" },
|
|
611
|
-
{ name: "\xD6rebro", slug: "orebro" },
|
|
612
|
-
{ name: "Orlando City", slug: "orlando-city" },
|
|
613
|
-
{ name: "Pachuca", slug: "pachuca" },
|
|
614
|
-
{ name: "Palmeiras", slug: "palmeiras" },
|
|
615
|
-
{ name: "Paris FC", slug: "paris-fc" },
|
|
616
|
-
{ name: "Paris Saint-Germain", slug: "psg" },
|
|
617
|
-
{ name: "PEC Zwolle", slug: "pec-zwolle" },
|
|
618
|
-
{ name: "P\xE9rez Zeled\xF3n", slug: "perez-zeledon" },
|
|
619
|
-
{ name: "Philadelphia Union", slug: "philadelphia-union" },
|
|
620
|
-
{ name: "Phoenix Rising", slug: "phoenix-rising" },
|
|
621
|
-
{ name: "Pittsburgh Riverhounds", slug: "pittsburgh-riverhounds" },
|
|
622
|
-
{ name: "Platense", slug: "platense" },
|
|
623
|
-
{ name: "Pohang Steelers", slug: "pohang-steelers" },
|
|
624
|
-
{ name: "Portland Timbers", slug: "portland-timbers" },
|
|
625
|
-
{ name: "Porto", slug: "porto" },
|
|
626
|
-
{ name: "PSV", slug: "psv" },
|
|
627
|
-
{ name: "Puebla", slug: "puebla" },
|
|
628
|
-
{ name: "Pumas", slug: "pumas" },
|
|
629
|
-
{ name: "Puntarenas", slug: "puntarenas" },
|
|
630
|
-
{ name: "Quer\xE9taro", slug: "queretaro" },
|
|
631
|
-
{ name: "Racing", slug: "racing" },
|
|
632
|
-
{ name: "Randers", slug: "randers" },
|
|
633
|
-
{ name: "Rangers", slug: "rangers" },
|
|
634
|
-
{ name: "RB Leipzig", slug: "rb-leipzig" },
|
|
635
|
-
{ name: "Real Madrid", slug: "real-madrid" },
|
|
636
|
-
{ name: "Real Salt Lake", slug: "real-salt-lake" },
|
|
637
|
-
{ name: "Red Star Belgrade", slug: "red-star" },
|
|
638
|
-
{ name: "Reims", slug: "reims" },
|
|
639
|
-
{ name: "Rennes", slug: "rennes" },
|
|
640
|
-
{ name: "Rhode Island FC", slug: "rhode-island-fc" },
|
|
641
|
-
{ name: "River Plate", slug: "river-plate" },
|
|
642
|
-
{ name: "RKC Waalwijk", slug: "rkc" },
|
|
643
|
-
{ name: "Roma", slug: "roma" },
|
|
644
|
-
{ name: "Rosario Central", slug: "rosario-central" },
|
|
645
|
-
{ name: "Rosenborg", slug: "rosenborg" },
|
|
646
|
-
{ name: "Sacramento Republic", slug: "sacramento-republic" },
|
|
647
|
-
{ name: "Saint-\xC9tienne", slug: "saint-etienne" },
|
|
648
|
-
{ name: "San Antonio FC", slug: "san-antonio-fc" },
|
|
649
|
-
{ name: "San Carlos", slug: "san-carlos" },
|
|
650
|
-
{ name: "San Diego FC", slug: "san-diego-fc" },
|
|
651
|
-
{ name: "San Jose Earthquakes", slug: "san-jose-earthquakes" },
|
|
652
|
-
{ name: "San Lorenzo", slug: "san-lorenzo" },
|
|
653
|
-
{ name: "Sanfrecce Hiroshima", slug: "sanfrecce-hiroshima" },
|
|
654
|
-
{ name: "Santos", slug: "santos" },
|
|
655
|
-
{ name: "Santos de Gu\xE1piles", slug: "santos-guapiles" },
|
|
656
|
-
{ name: "Santos Laguna", slug: "santos-laguna" },
|
|
657
|
-
{ name: "S\xE3o Paulo", slug: "sao-paulo" },
|
|
658
|
-
{ name: "Saprissa", slug: "saprissa" },
|
|
659
|
-
{ name: "Sarpsborg", slug: "sarpsborg" },
|
|
660
|
-
{ name: "Schalke", slug: "schalke" },
|
|
661
|
-
{ name: "Seattle Sounders", slug: "seattle-sounders" },
|
|
662
|
-
{ name: "Sevilla", slug: "sevilla" },
|
|
663
|
-
{ name: "Shakhtar", slug: "shakhtar" },
|
|
664
|
-
{ name: "Shimizu S-Pulse", slug: "shimizu-s-pulse" },
|
|
665
|
-
{ name: "Silkeborg", slug: "silkeborg" },
|
|
666
|
-
{ name: "Sirius", slug: "sirius" },
|
|
667
|
-
{ name: "Sochaux", slug: "sochaux" },
|
|
668
|
-
{ name: "S\xF8nderjyske", slug: "sonderjyske" },
|
|
669
|
-
{ name: "Sparta Rotterdam", slug: "sparta-rotterdam" },
|
|
670
|
-
{ name: "Sport Recife", slug: "sport-recife" },
|
|
671
|
-
{ name: "Sporting", slug: "sporting" },
|
|
672
|
-
{ name: "Sporting Jax", slug: "sporting-jax" },
|
|
673
|
-
{ name: "Sporting KC", slug: "sporting-kc" },
|
|
674
|
-
{ name: "Sporting San Jos\xE9", slug: "sporting-san-jose" },
|
|
675
|
-
{ name: "St Mirren", slug: "st-mirren" },
|
|
676
|
-
{ name: "St. Louis City", slug: "st-louis-city" },
|
|
677
|
-
{ name: "St. Pauli", slug: "st-pauli" },
|
|
678
|
-
{ name: "Stab\xE6k", slug: "stabaek" },
|
|
679
|
-
{ name: "Strasbourg", slug: "strasbourg" },
|
|
680
|
-
{ name: "Str\xF8msgodset", slug: "stromsgodset" },
|
|
681
|
-
{ name: "Stuttgart", slug: "stuttgart" },
|
|
682
|
-
{ name: "Switchbacks", slug: "switchbacks" },
|
|
683
|
-
{ name: "Talleres", slug: "talleres" },
|
|
684
|
-
{ name: "Tampa Bay Rowdies", slug: "tampa-bay-rowdies" },
|
|
685
|
-
{ name: "Tigre", slug: "tigre" },
|
|
686
|
-
{ name: "Tigres", slug: "tigres" },
|
|
687
|
-
{ name: "Tijuana", slug: "tijuana" },
|
|
688
|
-
{ name: "Tokyo Verdy", slug: "tokyo-verdy" },
|
|
689
|
-
{ name: "Toluca", slug: "toluca" },
|
|
690
|
-
{ name: "Toronto FC", slug: "toronto-fc" },
|
|
691
|
-
{ name: "Tottenham", slug: "tottenham" },
|
|
692
|
-
{ name: "Toulouse", slug: "toulouse" },
|
|
693
|
-
{ name: "Troms\xF8", slug: "tromso" },
|
|
694
|
-
{ name: "Troyes", slug: "troyes" },
|
|
695
|
-
{ name: "Twente", slug: "twente" },
|
|
696
|
-
{ name: "Ulsan HD", slug: "ulsan-hd" },
|
|
697
|
-
{ name: "Uni\xF3n", slug: "union" },
|
|
698
|
-
{ name: "Union Berlin", slug: "union-berlin" },
|
|
699
|
-
{ name: "Urawa Reds", slug: "urawa-reds" },
|
|
700
|
-
{ name: "Utrecht", slug: "utrecht" },
|
|
701
|
-
{ name: "V-Varen Nagasaki", slug: "v-varen-nagasaki" },
|
|
702
|
-
{ name: "Valencia", slug: "valencia" },
|
|
703
|
-
{ name: "V\xE5lerenga", slug: "valerenga" },
|
|
704
|
-
{ name: "Vancouver Whitecaps", slug: "vancouver-whitecaps" },
|
|
705
|
-
{ name: "V\xE4rnamo", slug: "varnamo" },
|
|
706
|
-
{ name: "Vasco da Gama", slug: "vasco" },
|
|
707
|
-
{ name: "Vejle", slug: "vejle" },
|
|
708
|
-
{ name: "V\xE9lez Sarsfield", slug: "velez" },
|
|
709
|
-
{ name: "Viborg", slug: "viborg" },
|
|
710
|
-
{ name: "Viking", slug: "viking" },
|
|
711
|
-
{ name: "Vissel Kobe", slug: "vissel-kobe" },
|
|
712
|
-
{ name: "Vitesse", slug: "vitesse" },
|
|
713
|
-
{ name: "Vit\xF3ria", slug: "vitoria" },
|
|
714
|
-
{ name: "Volendam", slug: "volendam" },
|
|
715
|
-
{ name: "Werder Bremen", slug: "werder-bremen" },
|
|
716
|
-
{ name: "West Ham", slug: "west-ham" },
|
|
717
|
-
{ name: "Willem II", slug: "willem-ii" },
|
|
718
|
-
{ name: "Wolfsburg", slug: "wolfsburg" },
|
|
719
|
-
{ name: "Yokohama Marinos", slug: "yokohama-marinos" }
|
|
720
|
-
];
|
|
721
|
-
var FAMOUS_SOCCER_TEAMS = FAMOUS_SOCCER_TEAM_SEEDS.map(withMeta);
|
|
722
|
-
function lookupSoccerTeam(titleOrSlug) {
|
|
723
|
-
const trimmed = titleOrSlug.trim();
|
|
724
|
-
if (!trimmed) return null;
|
|
725
|
-
const fromName = teamSlugFromName(trimmed);
|
|
726
|
-
const slug = fromName ?? normalizeTakenSlug(trimmed);
|
|
727
|
-
const baseSlug = slug.replace(/-\d+$/, "");
|
|
728
|
-
const seed = FAMOUS_SOCCER_TEAM_SEEDS.find((t) => t.slug === baseSlug);
|
|
729
|
-
if (!seed) return null;
|
|
730
|
-
const suffixMatch = slug.match(/-(\d+)$/) || trimmed.match(/\s+(\d+)$/);
|
|
731
|
-
const suffix = suffixMatch?.[1];
|
|
732
|
-
return withMeta({
|
|
733
|
-
name: suffix ? `${seed.name} ${suffix}` : seed.name,
|
|
734
|
-
slug: suffix ? `${seed.slug}-${suffix}` : seed.slug
|
|
735
|
-
});
|
|
736
|
-
}
|
|
737
|
-
function teamNameFromSlug(slug) {
|
|
738
|
-
const normalized = slug.toLowerCase().replace(/^thread\//, "");
|
|
739
|
-
const withoutTicket = normalized.replace(/^[a-z]{2,8}-\d{1,6}-/, "").replace(/^\d{1,8}-/, "");
|
|
740
|
-
const lookup = withoutTicket || normalized;
|
|
741
|
-
const suffixMatch = lookup.match(/^(.+)-(\d+)$/);
|
|
742
|
-
const base = suffixMatch?.[1] ?? lookup;
|
|
743
|
-
const suffix = suffixMatch?.[2];
|
|
744
|
-
const team = FAMOUS_SOCCER_TEAM_SEEDS.find((t) => t.slug === base);
|
|
745
|
-
if (team) return suffix ? `${team.name} ${suffix}` : team.name;
|
|
746
|
-
return normalized.split("-").filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
747
|
-
}
|
|
748
|
-
function teamSlugFromName(name) {
|
|
749
|
-
const trimmed = name.trim();
|
|
750
|
-
if (!trimmed) return null;
|
|
751
|
-
const suffixMatch = trimmed.match(/^(.+?)\s+(\d+)$/);
|
|
752
|
-
const baseName = suffixMatch?.[1] ?? trimmed;
|
|
753
|
-
const suffix = suffixMatch?.[2];
|
|
754
|
-
const team = FAMOUS_SOCCER_TEAM_SEEDS.find(
|
|
755
|
-
(t) => t.name.toLowerCase() === baseName.toLowerCase()
|
|
756
|
-
);
|
|
757
|
-
if (!team) return null;
|
|
758
|
-
return suffix ? `${team.slug}-${suffix}` : team.slug;
|
|
759
|
-
}
|
|
760
|
-
function normalizeTakenSlug(raw) {
|
|
761
|
-
return raw.toLowerCase().replace(/^thread\//, "").replace(/\/+$/, "");
|
|
762
|
-
}
|
|
763
|
-
function soccerTokenFromTakenSlug(raw) {
|
|
764
|
-
const normalized = normalizeTakenSlug(raw);
|
|
765
|
-
if (!normalized) return null;
|
|
766
|
-
const withoutTicket = normalized.replace(/^[a-z]{2,8}-\d{1,6}-/, "").replace(/^\d{1,8}-/, "");
|
|
767
|
-
const lookup = withoutTicket || normalized;
|
|
768
|
-
const suffixMatch = lookup.match(/^(.+)-(\d+)$/);
|
|
769
|
-
const base = suffixMatch?.[1] ?? lookup;
|
|
770
|
-
const team = FAMOUS_SOCCER_TEAM_SEEDS.find((t) => t.slug === base);
|
|
771
|
-
if (!team) return null;
|
|
772
|
-
return suffixMatch ? `${team.slug}-${suffixMatch[2]}` : team.slug;
|
|
773
|
-
}
|
|
774
|
-
function addTakenSlug(out, raw) {
|
|
775
|
-
const normalized = normalizeTakenSlug(raw);
|
|
776
|
-
if (!normalized) return;
|
|
777
|
-
out.add(normalized);
|
|
778
|
-
const token = soccerTokenFromTakenSlug(normalized);
|
|
779
|
-
if (token) out.add(token);
|
|
780
|
-
}
|
|
781
|
-
function takenSlugsFromThread(thread) {
|
|
782
|
-
const out = /* @__PURE__ */ new Set();
|
|
783
|
-
const titleSlug = thread.title ? teamSlugFromName(thread.title) : null;
|
|
784
|
-
if (titleSlug) out.add(normalizeTakenSlug(titleSlug));
|
|
785
|
-
if (thread.branchName?.trim()) {
|
|
786
|
-
addTakenSlug(out, thread.branchName.trim());
|
|
787
|
-
}
|
|
788
|
-
if (thread.worktreePath) {
|
|
789
|
-
const parts = thread.worktreePath.replace(/\/+$/, "").split("/");
|
|
790
|
-
const dir = parts[parts.length - 1];
|
|
791
|
-
if (dir) addTakenSlug(out, dir);
|
|
792
|
-
}
|
|
793
|
-
return [...out];
|
|
794
|
-
}
|
|
795
|
-
function allocateTeamName(taken, random = Math.random) {
|
|
796
|
-
const takenSet = new Set(
|
|
797
|
-
[...taken].map((s) => normalizeTakenSlug(s)).filter(Boolean)
|
|
798
|
-
);
|
|
799
|
-
const available = FAMOUS_SOCCER_TEAM_SEEDS.filter((t) => !takenSet.has(t.slug));
|
|
800
|
-
if (available.length > 0) {
|
|
801
|
-
const idx = Math.floor(random() * available.length);
|
|
802
|
-
return withMeta(available[idx]);
|
|
803
|
-
}
|
|
804
|
-
for (let n = 2; n < 1e3; n++) {
|
|
805
|
-
for (const t of FAMOUS_SOCCER_TEAM_SEEDS) {
|
|
806
|
-
const slug = `${t.slug}-${n}`;
|
|
807
|
-
if (!takenSet.has(slug)) {
|
|
808
|
-
return withMeta({ name: `${t.name} ${n}`, slug });
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
throw new Error("No available soccer team names left");
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
// src/git/worktree-labels.ts
|
|
816
|
-
function normalizeWorktreePath(worktreePath) {
|
|
817
|
-
const trimmed = (worktreePath ?? "").replace(/\/+$/, "") || "/";
|
|
818
|
-
const absolute = trimmed.startsWith("/");
|
|
819
|
-
const parts = trimmed.split("/").filter((p) => p && p !== ".");
|
|
820
|
-
const out = [];
|
|
821
|
-
for (const p of parts) {
|
|
822
|
-
if (p === "..") {
|
|
823
|
-
out.pop();
|
|
824
|
-
continue;
|
|
825
|
-
}
|
|
826
|
-
out.push(p);
|
|
827
|
-
}
|
|
828
|
-
return (absolute ? "/" : "") + out.join("/");
|
|
829
|
-
}
|
|
830
|
-
function worktreeNameFromPath(worktreePath) {
|
|
831
|
-
const normalized = worktreePath.replace(/\/+$/, "");
|
|
832
|
-
const parts = normalized.split("/");
|
|
833
|
-
return parts[parts.length - 1] || worktreePath;
|
|
834
|
-
}
|
|
835
|
-
function ticketSlugForBranch(sourceRef) {
|
|
836
|
-
const raw = sourceRef.trim();
|
|
837
|
-
if (!raw) return null;
|
|
838
|
-
const linear = raw.match(/\b([A-Za-z]{2,8}-\d{1,6})\b/);
|
|
839
|
-
if (linear) return linear[1].toLowerCase();
|
|
840
|
-
const hashed = raw.match(/^#(\d{1,8})$/);
|
|
841
|
-
if (hashed) return hashed[1];
|
|
842
|
-
const digits = raw.match(/^(\d{1,8})$/);
|
|
843
|
-
if (digits) return digits[1];
|
|
844
|
-
const slug = raw.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 48);
|
|
845
|
-
return slug || null;
|
|
846
|
-
}
|
|
847
|
-
function worktreeSlugForTicket(ticketRef, teamSlug) {
|
|
848
|
-
const ticket = ticketSlugForBranch(ticketRef);
|
|
849
|
-
const team = teamSlug.trim().replace(/^thread\//, "");
|
|
850
|
-
if (!ticket) return team;
|
|
851
|
-
if (!team) return ticket;
|
|
852
|
-
return `${ticket}-${team}`;
|
|
853
|
-
}
|
|
854
|
-
function isPlaceholderBranch(branchName, worktreePath) {
|
|
855
|
-
const branch = branchName.trim();
|
|
856
|
-
if (!branch || branch === "HEAD") return true;
|
|
857
|
-
if (branch.startsWith("thread/")) return true;
|
|
858
|
-
const dir = worktreeNameFromPath(worktreePath).toLowerCase();
|
|
859
|
-
return branch.toLowerCase() === dir;
|
|
860
|
-
}
|
|
861
|
-
function branchDisplayLabel(branchName, worktreePath) {
|
|
862
|
-
const dir = worktreeNameFromPath(worktreePath);
|
|
863
|
-
if (isPlaceholderBranch(branchName, worktreePath)) {
|
|
864
|
-
const slug = branchName.replace(/^thread\//, "") || dir;
|
|
865
|
-
return teamNameFromSlug(slug);
|
|
866
|
-
}
|
|
867
|
-
return branchName.trim();
|
|
868
|
-
}
|
|
869
|
-
function threadDisplayLabel(thread) {
|
|
870
|
-
if (thread.userSetTitle && thread.title?.trim()) return thread.title.trim();
|
|
871
|
-
if (thread.prTitle?.trim()) return thread.prTitle.trim();
|
|
872
|
-
return branchDisplayLabel(thread.branchName, thread.worktreePath);
|
|
873
|
-
}
|
|
874
|
-
function worktreeDisplayLabel(thread) {
|
|
875
|
-
return threadDisplayLabel(thread);
|
|
876
|
-
}
|
|
877
|
-
function worktreeDisplayLabelForGroup(threads) {
|
|
878
|
-
if (threads.length === 0) return "Worktree";
|
|
879
|
-
const canonical = [...threads].sort((a, b) => a.createdAt.localeCompare(b.createdAt))[0];
|
|
880
|
-
return threadDisplayLabel(canonical);
|
|
881
|
-
}
|
|
882
|
-
|
|
883
40
|
// src/git/gh-errors.ts
|
|
884
41
|
var GITHUB_PR_BODY_MAX_CHARS = 65536;
|
|
885
42
|
var GITHUB_PR_BODY_SAFE_CHARS = 6e4;
|
|
@@ -3242,20 +2399,6 @@ function allocateTeamSlug(repoPath) {
|
|
|
3242
2399
|
}
|
|
3243
2400
|
|
|
3244
2401
|
export {
|
|
3245
|
-
FAMOUS_SOCCER_TEAMS,
|
|
3246
|
-
lookupSoccerTeam,
|
|
3247
|
-
teamSlugFromName,
|
|
3248
|
-
takenSlugsFromThread,
|
|
3249
|
-
allocateTeamName,
|
|
3250
|
-
normalizeWorktreePath,
|
|
3251
|
-
worktreeNameFromPath,
|
|
3252
|
-
ticketSlugForBranch,
|
|
3253
|
-
worktreeSlugForTicket,
|
|
3254
|
-
isPlaceholderBranch,
|
|
3255
|
-
branchDisplayLabel,
|
|
3256
|
-
threadDisplayLabel,
|
|
3257
|
-
worktreeDisplayLabel,
|
|
3258
|
-
worktreeDisplayLabelForGroup,
|
|
3259
2402
|
GITHUB_PR_BODY_MAX_CHARS,
|
|
3260
2403
|
GITHUB_PR_BODY_SAFE_CHARS,
|
|
3261
2404
|
isGhRateLimitError,
|