@johnmorrisdotca/kyogijo-stadiums 0.4.0 → 0.6.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/CHANGELOG.md +133 -0
- package/NOTICE.md +182 -2
- package/README.md +106 -19
- package/dist/annotate.js +1 -1
- package/dist/arenas-entry.d.ts +4 -0
- package/dist/arenas-entry.js +3 -0
- package/dist/arenas.d.ts +125 -0
- package/dist/arenas.data.d.ts +2 -0
- package/dist/arenas.data.js +3763 -0
- package/dist/arenas.js +72 -0
- package/dist/athletics/describe.d.ts +8 -0
- package/dist/athletics/describe.js +41 -0
- package/dist/athletics/events.d.ts +17 -0
- package/dist/athletics/events.js +48 -0
- package/dist/athletics/facilities.d.ts +80 -0
- package/dist/athletics/facilities.js +176 -0
- package/dist/athletics/infield.d.ts +79 -0
- package/dist/athletics/infield.js +166 -0
- package/dist/athletics/layout.d.ts +13 -0
- package/dist/athletics/layout.js +98 -0
- package/dist/athletics/oval.d.ts +57 -0
- package/dist/athletics/oval.js +116 -0
- package/dist/athletics/plan.d.ts +97 -0
- package/dist/athletics/plan.js +355 -0
- package/dist/athletics/races.d.ts +102 -0
- package/dist/athletics/races.js +355 -0
- package/dist/athletics/steeplechase.d.ts +72 -0
- package/dist/athletics/steeplechase.js +196 -0
- package/dist/athletics/stencil.d.ts +13 -0
- package/dist/athletics/stencil.js +85 -0
- package/dist/athletics/track.d.ts +54 -0
- package/dist/athletics/track.js +105 -0
- package/dist/athletics/types.d.ts +77 -0
- package/dist/athletics/types.js +1 -0
- package/dist/athletics-entry.d.ts +17 -0
- package/dist/athletics-entry.js +11 -0
- package/dist/athletics.style.d.ts +16 -0
- package/dist/athletics.style.js +51 -0
- package/dist/atlas-entry.d.ts +6 -2
- package/dist/atlas-entry.js +4 -2
- package/dist/atlas.d.ts +117 -23
- package/dist/atlas.js +197 -12
- package/dist/background.js +2 -1
- package/dist/budo/describe.d.ts +13 -0
- package/dist/budo/describe.js +120 -0
- package/dist/budo/dojo.api.d.ts +64 -0
- package/dist/budo/dojo.api.js +46 -0
- package/dist/budo/dojo.d.ts +72 -0
- package/dist/budo/dojo.js +300 -0
- package/dist/budo/judo.d.ts +61 -0
- package/dist/budo/judo.js +109 -0
- package/dist/budo/karate.d.ts +29 -0
- package/dist/budo/karate.js +80 -0
- package/dist/budo/kendo.d.ts +18 -0
- package/dist/budo/kendo.js +44 -0
- package/dist/budo/kimarite.d.ts +19 -0
- package/dist/budo/kimarite.js +33 -0
- package/dist/budo/kit.d.ts +16 -0
- package/dist/budo/kit.js +24 -0
- package/dist/budo/kyudo.d.ts +28 -0
- package/dist/budo/kyudo.js +66 -0
- package/dist/budo/looks.d.ts +28 -0
- package/dist/budo/looks.js +58 -0
- package/dist/budo/parts.d.ts +32 -0
- package/dist/budo/parts.js +10 -0
- package/dist/budo/plan.d.ts +64 -0
- package/dist/budo/plan.js +139 -0
- package/dist/budo/room.d.ts +133 -0
- package/dist/budo/room.js +111 -0
- package/dist/budo/sumo.d.ts +31 -0
- package/dist/budo/sumo.js +71 -0
- package/dist/budo/tatami.d.ts +55 -0
- package/dist/budo/tatami.js +156 -0
- package/dist/budo/types.d.ts +192 -0
- package/dist/budo/types.js +2 -0
- package/dist/budo-entry.d.ts +22 -0
- package/dist/budo-entry.js +13 -0
- package/dist/budo.board.d.ts +28 -0
- package/dist/budo.board.js +81 -0
- package/dist/budo.score.d.ts +18 -0
- package/dist/budo.score.js +52 -0
- package/dist/budo.style.d.ts +6 -0
- package/dist/budo.style.js +67 -0
- package/dist/charts-entry.d.ts +6 -1
- package/dist/charts-entry.js +3 -0
- package/dist/charts.athletics.d.ts +183 -0
- package/dist/charts.athletics.js +455 -0
- package/dist/charts.baseball.js +1 -1
- package/dist/charts.curling.heat.d.ts +24 -0
- package/dist/charts.curling.heat.js +116 -0
- package/dist/charts.curling.js +14 -3
- package/dist/charts.js +4 -4
- package/dist/charts.pool.d.ts +67 -0
- package/dist/charts.pool.js +76 -0
- package/dist/charts.skating.d.ts +204 -0
- package/dist/charts.skating.js +426 -0
- package/dist/charts.soccer.js +3 -3
- package/dist/charts.types.d.ts +63 -1
- package/dist/colour.d.ts +4 -4
- package/dist/colour.js +4 -4
- package/dist/court.d.ts +85 -2
- package/dist/court.js +102 -7
- package/dist/court.more.d.ts +46 -0
- package/dist/court.more.js +219 -0
- package/dist/courts.style.d.ts +14 -2
- package/dist/courts.style.js +51 -4
- package/dist/crowd.d.ts +164 -0
- package/dist/crowd.draw.d.ts +17 -0
- package/dist/crowd.draw.js +204 -0
- package/dist/crowd.js +480 -0
- package/dist/crowd.park.d.ts +19 -0
- package/dist/crowd.park.js +153 -0
- package/dist/curling.stats.d.ts +271 -0
- package/dist/curling.stats.js +301 -0
- package/dist/draw.d.ts +16 -0
- package/dist/draw.js +462 -54
- package/dist/element-entry.d.ts +3 -1
- package/dist/element-entry.js +2 -1
- package/dist/element.d.ts +13 -2
- package/dist/element.js +79 -4
- package/dist/emblems-source.d.ts +50 -0
- package/dist/emblems-source.js +56 -0
- package/dist/eras.d.ts +3 -1
- package/dist/eras.js +8 -3
- package/dist/features.js +204 -0
- package/dist/field.data.d.ts +16 -0
- package/dist/field.data.js +50 -0
- package/dist/fields.kit.d.ts +2 -2
- package/dist/fields.types.d.ts +24 -4
- package/dist/formations.js +18 -7
- package/dist/formations.sports.d.ts +8 -0
- package/dist/formations.sports.js +251 -0
- package/dist/frames.providers.js +71 -8
- package/dist/geojson.js +3 -0
- package/dist/geometry-entry.d.ts +2 -1
- package/dist/geometry-entry.js +2 -1
- package/dist/geometry.d.ts +20 -0
- package/dist/geometry.js +78 -1
- package/dist/grounds.d.ts +4 -0
- package/dist/grounds.data.js +12 -0
- package/dist/halls.d.ts +65 -0
- package/dist/halls.js +122 -0
- package/dist/hardwood.d.ts +31 -0
- package/dist/hardwood.js +157 -0
- package/dist/heat.js +21 -13
- package/dist/heat.types.d.ts +5 -0
- package/dist/heat.zones.d.ts +4 -2
- package/dist/heat.zones.js +207 -7
- package/dist/homeside.js +24 -0
- package/dist/index.d.ts +30 -4
- package/dist/index.js +18 -2
- package/dist/layers-entry.d.ts +2 -1
- package/dist/layers-entry.js +1 -0
- package/dist/layers.d.ts +2 -1
- package/dist/layers.env.d.ts +12 -1
- package/dist/layers.env.js +36 -4
- package/dist/layers.js +32 -13
- package/dist/layers.types.d.ts +9 -2
- package/dist/leagues/athletics.d.ts +63 -0
- package/dist/leagues/athletics.js +87 -0
- package/dist/leagues/budo.d.ts +196 -0
- package/dist/leagues/budo.js +105 -0
- package/dist/leagues/courts.d.ts +269 -4
- package/dist/leagues/courts.js +155 -1
- package/dist/leagues/hockey.js +41 -19
- package/dist/leagues/skating.d.ts +145 -0
- package/dist/leagues/skating.js +73 -0
- package/dist/leagues/sources.js +41 -0
- package/dist/leagues/types.d.ts +1 -1
- package/dist/leagues-entry.d.ts +4 -2
- package/dist/leagues-entry.js +2 -1
- package/dist/leagues.d.ts +17 -4
- package/dist/leagues.js +246 -5
- package/dist/lineup.codes.d.ts +23 -0
- package/dist/lineup.codes.js +122 -0
- package/dist/logo.d.ts +25 -0
- package/dist/logo.js +47 -0
- package/dist/look.d.ts +3 -3
- package/dist/look.js +39 -6
- package/dist/outline.d.ts +1 -1
- package/dist/outline.js +46 -4
- package/dist/pageant.d.ts +120 -0
- package/dist/pageant.draw.d.ts +21 -0
- package/dist/pageant.draw.js +171 -0
- package/dist/pageant.js +211 -0
- package/dist/pageant.style.d.ts +8 -0
- package/dist/pageant.style.js +42 -0
- package/dist/png.d.ts +8 -1
- package/dist/png.js +21 -1
- package/dist/pointer-entry.d.ts +2 -0
- package/dist/pointer-entry.js +2 -0
- package/dist/pointer.d.ts +113 -0
- package/dist/pointer.js +151 -0
- package/dist/pool.d.ts +176 -0
- package/dist/pool.figures.d.ts +306 -0
- package/dist/pool.figures.js +148 -0
- package/dist/pool.js +304 -0
- package/dist/pool.kit.d.ts +48 -0
- package/dist/pool.kit.js +141 -0
- package/dist/pool.labels.d.ts +20 -0
- package/dist/pool.labels.js +258 -0
- package/dist/pool.race.d.ts +65 -0
- package/dist/pool.race.js +140 -0
- package/dist/pool.replay.d.ts +46 -0
- package/dist/pool.replay.js +127 -0
- package/dist/pool.section.d.ts +13 -0
- package/dist/pool.section.js +83 -0
- package/dist/pool.style.d.ts +20 -0
- package/dist/pool.style.js +169 -0
- package/dist/pool.types.d.ts +145 -0
- package/dist/pool.types.js +3 -0
- package/dist/pool.words.d.ts +13 -0
- package/dist/pool.words.js +101 -0
- package/dist/ranges.names.js +53 -3
- package/dist/replay-entry.d.ts +3 -0
- package/dist/replay-entry.js +2 -0
- package/dist/restyle.js +1 -1
- package/dist/road.draw.js +3 -2
- package/dist/road.js +2 -1
- package/dist/road.types.d.ts +3 -0
- package/dist/rules.d.ts +138 -0
- package/dist/rules.js +511 -0
- package/dist/rules.types.d.ts +4 -0
- package/dist/rules.types.js +64 -0
- package/dist/score.d.ts +3 -0
- package/dist/score.js +93 -6
- package/dist/sheet.d.ts +3 -0
- package/dist/sheet.js +7 -3
- package/dist/situation.d.ts +135 -0
- package/dist/situation.draw.d.ts +34 -0
- package/dist/situation.draw.js +202 -0
- package/dist/situation.js +337 -0
- package/dist/situation.style.d.ts +2 -0
- package/dist/situation.style.js +45 -0
- package/dist/situation.types.d.ts +77 -0
- package/dist/situation.types.js +3 -0
- package/dist/situation.widgets.d.ts +39 -0
- package/dist/situation.widgets.js +129 -0
- package/dist/skating/describe.d.ts +7 -0
- package/dist/skating/describe.js +44 -0
- package/dist/skating/events.d.ts +24 -0
- package/dist/skating/events.js +47 -0
- package/dist/skating/figure.d.ts +24 -0
- package/dist/skating/figure.js +37 -0
- package/dist/skating/long.d.ts +54 -0
- package/dist/skating/long.js +111 -0
- package/dist/skating/parts.d.ts +43 -0
- package/dist/skating/parts.js +40 -0
- package/dist/skating/plan.d.ts +55 -0
- package/dist/skating/plan.js +197 -0
- package/dist/skating/short.d.ts +47 -0
- package/dist/skating/short.js +89 -0
- package/dist/skating/track.d.ts +66 -0
- package/dist/skating/track.js +94 -0
- package/dist/skating/types.d.ts +57 -0
- package/dist/skating/types.js +3 -0
- package/dist/skating-entry.d.ts +17 -0
- package/dist/skating-entry.js +11 -0
- package/dist/skating.style.d.ts +4 -0
- package/dist/skating.style.js +24 -0
- package/dist/strings.d.ts +470 -0
- package/dist/strings.js +674 -13
- package/dist/style.d.ts +2 -0
- package/dist/style.js +19 -2
- package/dist/surfaces/artistic.d.ts +9 -0
- package/dist/surfaces/artistic.js +94 -0
- package/dist/surfaces/athletics.d.ts +16 -0
- package/dist/surfaces/athletics.js +132 -0
- package/dist/surfaces/baseball.js +17 -0
- package/dist/surfaces/basketball.floor.d.ts +27 -0
- package/dist/surfaces/basketball.floor.js +83 -0
- package/dist/surfaces/basketball.gear.d.ts +27 -0
- package/dist/surfaces/basketball.gear.js +90 -0
- package/dist/surfaces/basketball.js +44 -22
- package/dist/surfaces/budo.d.ts +6 -0
- package/dist/surfaces/budo.js +104 -0
- package/dist/surfaces/curling.d.ts +16 -0
- package/dist/surfaces/curling.fold.d.ts +67 -0
- package/dist/surfaces/curling.fold.js +107 -0
- package/dist/surfaces/curling.js +37 -3
- package/dist/surfaces/dive.d.ts +9 -0
- package/dist/surfaces/dive.js +128 -0
- package/dist/surfaces/field.d.ts +7 -2
- package/dist/surfaces/field.js +15 -9
- package/dist/surfaces/football.js +7 -0
- package/dist/surfaces/hockey.js +4 -2
- package/dist/surfaces/net.d.ts +2 -1
- package/dist/surfaces/net.js +160 -15
- package/dist/surfaces/polo.d.ts +12 -0
- package/dist/surfaces/polo.js +159 -0
- package/dist/surfaces/pool.d.ts +27 -0
- package/dist/surfaces/pool.js +198 -0
- package/dist/surfaces/skating.d.ts +6 -0
- package/dist/surfaces/skating.js +62 -0
- package/dist/surfaces/soccer.js +2 -1
- package/dist/surfaces/surface.d.ts +76 -0
- package/dist/surfaces/venue.d.ts +15 -0
- package/dist/surfaces/venue.js +95 -0
- package/dist/target-entry.d.ts +2 -0
- package/dist/target-entry.js +2 -0
- package/dist/target.d.ts +200 -0
- package/dist/target.js +525 -0
- package/dist/team.common.d.ts +1 -1
- package/dist/team.common.js +3 -3
- package/dist/team.formation.d.ts +3 -1
- package/dist/team.formation.js +3 -3
- package/dist/team.layers.d.ts +2 -2
- package/dist/team.layers.js +4 -1
- package/dist/team.lineup.d.ts +27 -0
- package/dist/team.lineup.js +207 -0
- package/dist/team.network.js +6 -5
- package/dist/team.shape.js +5 -5
- package/dist/team.types.d.ts +40 -1
- package/dist/tenants.d.ts +77 -0
- package/dist/tenants.data.d.ts +8 -0
- package/dist/tenants.data.js +1793 -0
- package/dist/tenants.js +46 -0
- package/dist/turn-entry.d.ts +12 -0
- package/dist/turn-entry.js +7 -0
- package/dist/turn.camera.d.ts +116 -0
- package/dist/turn.camera.js +184 -0
- package/dist/turn.dom.d.ts +40 -0
- package/dist/turn.dom.js +353 -0
- package/dist/turn.kit.d.ts +86 -0
- package/dist/turn.kit.js +110 -0
- package/dist/turn.markup.d.ts +48 -0
- package/dist/turn.markup.js +108 -0
- package/dist/turn.model.d.ts +78 -0
- package/dist/turn.model.js +91 -0
- package/dist/turn.style.d.ts +5 -0
- package/dist/turn.style.js +56 -0
- package/dist/types.d.ts +221 -20
- package/dist/units.d.ts +1 -1
- package/dist/units.js +22 -1
- package/dist/uprights.board.d.ts +17 -0
- package/dist/uprights.board.js +59 -0
- package/dist/uprights.budo.d.ts +17 -0
- package/dist/uprights.budo.js +87 -0
- package/dist/uprights.d.ts +37 -0
- package/dist/uprights.fields.d.ts +32 -0
- package/dist/uprights.fields.js +172 -0
- package/dist/uprights.goal.d.ts +49 -0
- package/dist/uprights.goal.js +69 -0
- package/dist/uprights.js +169 -0
- package/dist/uprights.more.d.ts +7 -0
- package/dist/uprights.more.js +183 -0
- package/dist/uprights.net.d.ts +12 -0
- package/dist/uprights.net.js +109 -0
- package/dist/uprights.netkit.d.ts +28 -0
- package/dist/uprights.netkit.js +67 -0
- package/dist/uprights.pools.d.ts +8 -0
- package/dist/uprights.pools.js +190 -0
- package/dist/uprights.rinks.d.ts +27 -0
- package/dist/uprights.rinks.js +106 -0
- package/dist/uprights.track.d.ts +50 -0
- package/dist/uprights.track.js +246 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/zones-entry.d.ts +2 -0
- package/dist/zones-entry.js +2 -0
- package/package.json +56 -3
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { type Unit } from "../units.ts";
|
|
2
|
+
import type { LeagueBase } from "./types.ts";
|
|
3
|
+
/** The figures of the standard 400 m speed skating track, in metres. */
|
|
4
|
+
export interface LongTrackFigures {
|
|
5
|
+
kind: "long-track";
|
|
6
|
+
/** The radius of the inner edge of the inner lane: 25 m to 26 m (Rule 203.1); 25 m drawn. */
|
|
7
|
+
innerRadius: {
|
|
8
|
+
min: number;
|
|
9
|
+
max: number;
|
|
10
|
+
drawn: number;
|
|
11
|
+
};
|
|
12
|
+
/** The width of the inner competition lane (Rule 203.3). */
|
|
13
|
+
innerLane: number;
|
|
14
|
+
/** The width of the outer competition lane: at least 4 m (Rule 203.3), 4 m drawn. */
|
|
15
|
+
outerLane: {
|
|
16
|
+
min: number;
|
|
17
|
+
max: number;
|
|
18
|
+
drawn: number;
|
|
19
|
+
};
|
|
20
|
+
/** The warm-up lane inside the competition lanes: at least 4 m wide (Rules 205 and 206). */
|
|
21
|
+
warmUpLane: number;
|
|
22
|
+
/** The length of a lap, measured 0.5 m outside the inner edge (Rule 227.1), the lane alternating at the crossing: at most 400 m (Rule 203.1). */
|
|
23
|
+
lap: number;
|
|
24
|
+
/** How far outside a lane's inner edge it is measured: 0.5 m (Rule 227.1). */
|
|
25
|
+
measure: number;
|
|
26
|
+
/** The width of the lane lines (fully painted, Rule 226) and of the starting and finishing lines (not more than 5 cm, Rule 227.2). */
|
|
27
|
+
line: number;
|
|
28
|
+
/** The blocks of a curve: 50 cm apart for the first 15 m, 2 m apart after (Rule 226). */
|
|
29
|
+
blocks: {
|
|
30
|
+
near: number;
|
|
31
|
+
nearLength: number;
|
|
32
|
+
far: number;
|
|
33
|
+
height: number;
|
|
34
|
+
};
|
|
35
|
+
/** The pre-start line before a starting line, and how much of the finishing line is marked by the metre (Rule 227.2). */
|
|
36
|
+
preStart: number;
|
|
37
|
+
finishMetres: number;
|
|
38
|
+
/** The coaches' area on the crossing straight: a line 1 m from the outside edge, from 25 m after the end of one curve to 10 m before the next (Rule 227.3). */
|
|
39
|
+
coaches: {
|
|
40
|
+
offset: number;
|
|
41
|
+
after: number;
|
|
42
|
+
before: number;
|
|
43
|
+
};
|
|
44
|
+
/** The padding round the track: at least 80 cm high, 30 cm thick, and any fixed object at least 3 m from the edge (Rule 228.2). */
|
|
45
|
+
padding: {
|
|
46
|
+
thick: number;
|
|
47
|
+
clear: number;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** The figures of the short track speed skating oval, in metres. */
|
|
51
|
+
export interface ShortTrackFigures {
|
|
52
|
+
kind: "short-track";
|
|
53
|
+
/** The length of a lap (Rule 280.1a and the diagram): 2 x S + 2 x C x pi. */
|
|
54
|
+
lap: number;
|
|
55
|
+
/** The distance between the centres of the curves, S, and the radius of the track's line, C (the diagram). */
|
|
56
|
+
straight: number;
|
|
57
|
+
radius: number;
|
|
58
|
+
/** The radius of the blocks: the line of the track is 0.5 m outside them (R8.00 in the diagram). */
|
|
59
|
+
blocks: number;
|
|
60
|
+
/** The blocks of a curve: seven (Rule 280.4). */
|
|
61
|
+
blocksPerCurve: number;
|
|
62
|
+
/** The least width of the straight, from the blocks to the barrier, and from the apex block to the barrier (Rule 280.1b and 280.1c). */
|
|
63
|
+
straightWidth: number;
|
|
64
|
+
apexClear: number;
|
|
65
|
+
/** The least size of the rink for ISU events (Rule 280.1a). */
|
|
66
|
+
rink: {
|
|
67
|
+
length: number;
|
|
68
|
+
width: number;
|
|
69
|
+
};
|
|
70
|
+
/** The other tracks laid out beside the standard one (Rule 280.1e and the diagram): how many, how far each is moved along the straight, and the distance between starting lines. */
|
|
71
|
+
tracks: {
|
|
72
|
+
five: {
|
|
73
|
+
shift: number;
|
|
74
|
+
lines: number;
|
|
75
|
+
};
|
|
76
|
+
seven: {
|
|
77
|
+
shift: number;
|
|
78
|
+
lines: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/** The finishing line is the width of the straight and this much more; the lines are not more than 2 cm wide (Rule 280.2). */
|
|
82
|
+
finishExtra: number;
|
|
83
|
+
line: number;
|
|
84
|
+
/** The starting positions of the 500 m and the 1000 m: five dots of 2 cm every 1.3 m, from 50 cm out from the inner side of the track (Rule 280.2c). */
|
|
85
|
+
dots: {
|
|
86
|
+
count: number;
|
|
87
|
+
step: number;
|
|
88
|
+
from: number;
|
|
89
|
+
diameter: number;
|
|
90
|
+
};
|
|
91
|
+
/** The laps of each distance (the diagram): 500 m = 4 1/2 laps ... 5000 m = 45 laps. At the ISU Championships and the Olympic Winter Games the 3000 m is the women's relay, the 5000 m the men's and the 2000 m the mixed relay (Rule 281.1a); the individual distances are 500, 1000 and 1500 m, and 3000 m in the World Cup. */
|
|
92
|
+
laps: {
|
|
93
|
+
"500m": number;
|
|
94
|
+
"1000m": number;
|
|
95
|
+
"1500m": number;
|
|
96
|
+
"3000m": number;
|
|
97
|
+
"3000m-relay": number;
|
|
98
|
+
"5000m-relay": number;
|
|
99
|
+
"2000m-mixed-relay": number;
|
|
100
|
+
};
|
|
101
|
+
/** The inner surface of the track, coloured, lies this far inside the blocks (the diagram: the finishing line reaches 1.5 m in). */
|
|
102
|
+
inner: number;
|
|
103
|
+
}
|
|
104
|
+
/** The figures of a figure skating rink, in metres. */
|
|
105
|
+
export interface FigureRinkFigures {
|
|
106
|
+
kind: "figure";
|
|
107
|
+
/** The skating area: if possible 60 m by 30 m, not larger and not less than 56 m by 26 m (Rule 342.1). */
|
|
108
|
+
length: {
|
|
109
|
+
min: number;
|
|
110
|
+
max: number;
|
|
111
|
+
drawn: number;
|
|
112
|
+
};
|
|
113
|
+
width: {
|
|
114
|
+
min: number;
|
|
115
|
+
max: number;
|
|
116
|
+
drawn: number;
|
|
117
|
+
};
|
|
118
|
+
/** The radius of the corners, which the Rules do not give: ours. */
|
|
119
|
+
corner: number;
|
|
120
|
+
/** The boards' thickness as drawn, and the depth of a judges' station and of the technical panel's table, which the Rules do not give: ours. */
|
|
121
|
+
boards: number;
|
|
122
|
+
}
|
|
123
|
+
/** The figures of a skating league. */
|
|
124
|
+
export type SkatingFigures = LongTrackFigures | ShortTrackFigures | FigureRinkFigures;
|
|
125
|
+
/** A league with a skating surface of its own. */
|
|
126
|
+
export type SkatingLeague = LeagueBase<"skating", SkatingFigures>;
|
|
127
|
+
/** The figures in feet, as the drawing's units are: the lengths only, not the counts, the laps or the angles. */
|
|
128
|
+
export declare function skatingInFeet(figures: SkatingFigures, unit: Unit): SkatingFigures;
|
|
129
|
+
/**
|
|
130
|
+
* The standard 400 m speed skating track (Rules 203 and 227 and "Measurements of standard 400m speed skating tracks"): two lanes, the inner 4 m wide and the outer at least 4 m, the inner curve of radius
|
|
131
|
+
* 25 m to 26 m, the track measured 0.5 m outside the inner edge of each lane, a lap of 400 m made of two straights, an inner curve, an outer curve and the crossing, since a skater changes lanes once a lap.
|
|
132
|
+
*/
|
|
133
|
+
export declare const ISU_LONG_TRACK: LongTrackFigures;
|
|
134
|
+
/** The short track oval (Rule 280 and the diagram "Track numbers"): S = 28.85 m, C = R8.50 m, a lap of 111.12 m on a rink of 60 by 30 m at the least. */
|
|
135
|
+
export declare const ISU_SHORT_TRACK: ShortTrackFigures;
|
|
136
|
+
/** The figure skating rink (Rule 342.1): 60 m by 30 m if possible, 56 m by 26 m at the least. The corners and the boards are ours. */
|
|
137
|
+
export declare const ISU_FIGURE_RINK: FigureRinkFigures;
|
|
138
|
+
/** The measurements of the three options of the standard 400 m track (the table "Measurements of standard 400m speed skating tracks"): the half of the mean axis (the straight, f) and the lengths a skater skates. */
|
|
139
|
+
export declare const ISU_LONG_TRACK_TABLE: Readonly<Record<"25m" | "25.5m" | "26m", {
|
|
140
|
+
radius: number;
|
|
141
|
+
straight: number;
|
|
142
|
+
crossing: number;
|
|
143
|
+
}>>;
|
|
144
|
+
/** The skating leagues: the long track (the sport's own), the short track and the figure skating rink. */
|
|
145
|
+
export declare const SKATING_LEAGUES: readonly SkatingLeague[];
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// The ice skating rinks and tracks of the International Skating Union: the standard 400 m speed skating track (Special Regulations and Technical Rules Speed Skating, Rules 203, 205, 226 and 227, and the
|
|
2
|
+
// layout plan and measurements of "H. Track"), the short track speed skating oval of 111.12 m on a rink of 60 by 30 m (Special Regulations and Technical Rules Short Track Speed Skating, Rule 280 and
|
|
3
|
+
// its diagram) and the rink of figure skating (Special Regulations and Technical Rules Single and Pair Skating and Ice Dance, Rule 342), with every figure in metres. Nothing here draws.
|
|
4
|
+
import { convertLength } from "../units.js";
|
|
5
|
+
/** The figures in feet, as the drawing's units are: the lengths only, not the counts, the laps or the angles. */
|
|
6
|
+
export function skatingInFeet(figures, unit) {
|
|
7
|
+
const k = (v) => convertLength(v, unit, "ft");
|
|
8
|
+
const span = (s) => ({ min: k(s.min), max: k(s.max), drawn: k(s.drawn) });
|
|
9
|
+
if (figures.kind === "long-track") {
|
|
10
|
+
return { ...figures, innerRadius: span(figures.innerRadius), innerLane: k(figures.innerLane), outerLane: span(figures.outerLane), warmUpLane: k(figures.warmUpLane), lap: k(figures.lap), measure: k(figures.measure), line: k(figures.line), blocks: { near: k(figures.blocks.near), nearLength: k(figures.blocks.nearLength), far: k(figures.blocks.far), height: k(figures.blocks.height) }, preStart: k(figures.preStart), finishMetres: k(figures.finishMetres), coaches: { offset: k(figures.coaches.offset), after: k(figures.coaches.after), before: k(figures.coaches.before) }, padding: { thick: k(figures.padding.thick), clear: k(figures.padding.clear) } };
|
|
11
|
+
}
|
|
12
|
+
if (figures.kind === "short-track") {
|
|
13
|
+
return { ...figures, lap: k(figures.lap), straight: k(figures.straight), radius: k(figures.radius), blocks: k(figures.blocks), straightWidth: k(figures.straightWidth), apexClear: k(figures.apexClear), rink: { length: k(figures.rink.length), width: k(figures.rink.width) }, tracks: { five: { shift: k(figures.tracks.five.shift), lines: k(figures.tracks.five.lines) }, seven: { shift: k(figures.tracks.seven.shift), lines: k(figures.tracks.seven.lines) } }, finishExtra: k(figures.finishExtra), line: k(figures.line), dots: { ...figures.dots, step: k(figures.dots.step), from: k(figures.dots.from), diameter: k(figures.dots.diameter) }, inner: k(figures.inner) };
|
|
14
|
+
}
|
|
15
|
+
return { ...figures, length: span(figures.length), width: span(figures.width), corner: k(figures.corner), boards: k(figures.boards) };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The standard 400 m speed skating track (Rules 203 and 227 and "Measurements of standard 400m speed skating tracks"): two lanes, the inner 4 m wide and the outer at least 4 m, the inner curve of radius
|
|
19
|
+
* 25 m to 26 m, the track measured 0.5 m outside the inner edge of each lane, a lap of 400 m made of two straights, an inner curve, an outer curve and the crossing, since a skater changes lanes once a lap.
|
|
20
|
+
*/
|
|
21
|
+
export const ISU_LONG_TRACK = {
|
|
22
|
+
kind: "long-track",
|
|
23
|
+
innerRadius: { min: 25, max: 26, drawn: 25 },
|
|
24
|
+
innerLane: 4,
|
|
25
|
+
outerLane: { min: 4, max: 6, drawn: 4 },
|
|
26
|
+
warmUpLane: 4,
|
|
27
|
+
lap: 400,
|
|
28
|
+
measure: 0.5,
|
|
29
|
+
line: 0.05,
|
|
30
|
+
blocks: { near: 0.5, nearLength: 15, far: 2, height: 0.05 },
|
|
31
|
+
preStart: 2,
|
|
32
|
+
finishMetres: 5,
|
|
33
|
+
coaches: { offset: 1, after: 25, before: 10 },
|
|
34
|
+
padding: { thick: 0.3, clear: 3 },
|
|
35
|
+
};
|
|
36
|
+
/** The short track oval (Rule 280 and the diagram "Track numbers"): S = 28.85 m, C = R8.50 m, a lap of 111.12 m on a rink of 60 by 30 m at the least. */
|
|
37
|
+
export const ISU_SHORT_TRACK = {
|
|
38
|
+
kind: "short-track",
|
|
39
|
+
lap: 111.12,
|
|
40
|
+
straight: 28.85,
|
|
41
|
+
radius: 8.5,
|
|
42
|
+
blocks: 8,
|
|
43
|
+
blocksPerCurve: 7,
|
|
44
|
+
straightWidth: 7,
|
|
45
|
+
apexClear: 4,
|
|
46
|
+
rink: { length: 60, width: 30 },
|
|
47
|
+
tracks: { five: { shift: 1, lines: 2 }, seven: { shift: 0.7, lines: 1.4 } },
|
|
48
|
+
finishExtra: 1.5,
|
|
49
|
+
line: 0.02,
|
|
50
|
+
dots: { count: 5, step: 1.3, from: 0.5, diameter: 0.02 },
|
|
51
|
+
laps: { "500m": 4.5, "1000m": 9, "1500m": 13.5, "3000m": 27, "3000m-relay": 27, "5000m-relay": 45, "2000m-mixed-relay": 18 },
|
|
52
|
+
inner: 1.5,
|
|
53
|
+
};
|
|
54
|
+
/** The figure skating rink (Rule 342.1): 60 m by 30 m if possible, 56 m by 26 m at the least. The corners and the boards are ours. */
|
|
55
|
+
export const ISU_FIGURE_RINK = {
|
|
56
|
+
kind: "figure",
|
|
57
|
+
length: { min: 56, max: 60, drawn: 60 },
|
|
58
|
+
width: { min: 26, max: 30, drawn: 30 },
|
|
59
|
+
corner: 8.5,
|
|
60
|
+
boards: 0.3,
|
|
61
|
+
};
|
|
62
|
+
/** The measurements of the three options of the standard 400 m track (the table "Measurements of standard 400m speed skating tracks"): the half of the mean axis (the straight, f) and the lengths a skater skates. */
|
|
63
|
+
export const ISU_LONG_TRACK_TABLE = Object.freeze({
|
|
64
|
+
"25m": { radius: 25, straight: 113.57, crossing: 113.64 },
|
|
65
|
+
"25.5m": { radius: 25.5, straight: 112, crossing: 112.07 },
|
|
66
|
+
"26m": { radius: 26, straight: 110.43, crossing: 110.5 },
|
|
67
|
+
});
|
|
68
|
+
/** The skating leagues: the long track (the sport's own), the short track and the figure skating rink. */
|
|
69
|
+
export const SKATING_LEAGUES = [
|
|
70
|
+
{ id: "isu-long-track", family: "skating", name: { en: "ISU 400 m speed skating track", ja: "ISU 400mスピードスケートのリンク" }, unit: "m", dimensions: ISU_LONG_TRACK, sources: ["isu-speed-skating-rules"], builtIn: true },
|
|
71
|
+
{ id: "isu-short-track", family: "skating", name: { en: "ISU 111.12 m short track speed skating oval", ja: "ISU 111.12mショートトラックのリンク" }, unit: "m", dimensions: ISU_SHORT_TRACK, sources: ["isu-short-track-rules"] },
|
|
72
|
+
{ id: "isu-figure", family: "skating", name: { en: "ISU figure skating rink", ja: "ISUフィギュアスケートのリンク" }, unit: "m", dimensions: ISU_FIGURE_RINK, sources: ["isu-figure-skating-rules"] },
|
|
73
|
+
];
|
package/dist/leagues/sources.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// each figure. A rulebook's text is not copied; only its dimensions, which are facts.
|
|
3
3
|
const source = (s) => [s.id, Object.freeze(s)];
|
|
4
4
|
const READ = "2026-10-13";
|
|
5
|
+
const BUDO_READ = "2026-10-14";
|
|
5
6
|
/** Every document a league's figures were read from, by id. */
|
|
6
7
|
export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
7
8
|
// The leagues the package started with.
|
|
@@ -27,6 +28,8 @@ export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
|
27
28
|
source({ id: "usa-hockey-junior", title: "Official Rules of Ice Hockey, Junior Hockey Edition, Rules 101 to 105 and the rink diagrams", by: "USA Hockey", edition: "2025-29 (adopted 19 January 2025)", url: "https://cdn3.sportngin.com/attachments/document/e6a1-3442852/2025-29_USAH_Playing_Rules_-_Junior.pdf", read: READ, note: "the rink the USHL's own rules send its clubs to" }),
|
|
28
29
|
source({ id: "ushl-2021", title: "USHL Rules and Regulations, 9.2", by: "United States Hockey League", edition: "2021-22 (the only USHL document found)", url: "https://cdn1.sportngin.com/attachments/document/69ff-2563252/USHL_Rules_and_Regulations_2021-22.pdf", read: READ, note: "rinks must comply with the USA Hockey Junior rulebook" }),
|
|
29
30
|
source({ id: "pwhl-2025", title: "PWHL Official Rulebook, Rule 1, 1.8 and 27.8", by: "Professional Women's Hockey League", edition: "2025-26", url: "https://assets.contentstack.io/v3/assets/bltebdb4296e05d53db/bltb8440fe08a5e6dc5/69178cd0a582d7db321ad107/2025-2026_PWHL_Rulebook.pdf", read: READ, note: "the NHL's Rule 1 with no restricted area for goalkeepers" }),
|
|
31
|
+
source({ id: "iihf-milan-2025", title: "IIHF Issues Statement on Controversial Olympic Hockey Rink (the IIHF's statement of the ice of Milano Cortina 2026: 60.0 by 26.0 metres, the Beijing 2022 size, consistent with the NHL's Global Series arena specifications)", by: "Sports Illustrated, Seth Dowdle, 9 December 2025, quoting the IIHF", edition: "2026 Olympic Winter Games", url: "https://www.si.com/onsi/breakaway/iihf-issues-statement-controversial-olympic-hockey-rink", read: "2026-10-14", note: "the size of the Olympic rink (60.0 by 26.0 m) and that it matches Beijing 2022; no markings are given" }),
|
|
32
|
+
source({ id: "wp-boston-garden", title: "Boston Garden", by: "Wikipedia (CC BY-SA 4.0), revision 1379921964, read for facts only", edition: "revision 1379921964", url: "https://en.wikipedia.org/w/index.php?title=Boston_Garden&oldid=1379921964", read: "2026-10-14", note: "the Garden's hockey rink, 58.2 by 25.3 m, nine feet shorter and two feet narrower than the NHL's 200 by 85; no other figure of it is published there" }),
|
|
30
33
|
// Basketball.
|
|
31
34
|
source({ id: "wnba-rules", title: "Official Rules of the WNBA, Rule No. 1, Section I and diagram A", by: "WNBA", edition: "2026", url: "https://cdn.wnba.com/sites/4/2026/05/2026-WNBA-Official-Rule-Book.pdf", read: READ, note: "the WNBA court: three-point 22 ft 1¾ in, parallel lines 36 in from the sidelines, lane 16 feet, restricted area 4 feet" }),
|
|
32
35
|
source({ id: "seattle-times-2003", title: "WNBA to have wider lane, extended three-point line", by: "The Seattle Times, 18 December 2003", edition: "2004 season", url: "https://archive.seattletimes.com/archive/20031218/digs18/wnba-to-have-wider-lane-extended-three-point-line", read: READ, note: "the lane widened from 12 to 16 feet for 2004" }),
|
|
@@ -56,6 +59,17 @@ export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
|
56
59
|
source({ id: "bwf-laws", title: "Laws of Badminton, Law 1 Court and Court Equipment and Diagram A, Law 7 Scoring System", by: "Badminton World Federation", edition: "as amended and adopted by the BWF 26 April 2025 (the 2026 amendments take effect on 4 January 2027 and could not be read)", url: "https://worldbadminton.com/laws/rules_2025.htm", read: READ, note: "lines 40 mm wide (1.1), posts 1.55 m on the doubles side lines (1.4, 1.5), net 760 mm deep and at least 6.1 m wide (1.7), 1.524 m at the centre and 1.55 m over the side lines (1.10); Diagram A (https://worldbadminton.com/laws/images/courtDiagram.png): 13 400 by 6 100 mm overall, singles side lines 460 mm inside the doubles side lines (40 + 420), doubles long service lines 760 mm inside the back boundary lines (40 + 720), short service lines 1 980 mm from the net, centre lines from the short service lines to the back boundary lines; a game to 21, at 20-all a two-point lead, at 29-all the 30th point (7.2, 7.4, 7.5), best of three games (7.1)" }),
|
|
57
60
|
source({ id: "usap-rulebook", title: "USA Pickleball Official Rulebook, Section 3 Court and Equipment (3.A and 3.B)", by: "USA Pickleball", edition: "2026", url: "https://pickleballcanada.org/wp-content/uploads/2026/03/2026-Official-Rulebook-EN.pdf", read: READ, note: "the 2026 rulebook as hosted by Pickleball Canada: 20 by 44 ft to the outside edge of the lines (3.A.1, 3.A.2), a playing surface of at least 30 by 60 ft and the recommended 34 by 64 ft for tournaments (3.A.3), the non-volley zone 7 ft from the net (3.A.4.c), the centerline (3.A.4.d), lines 2 in wide (3.A.4.e), posts 22 ft apart inside to inside and at most 3 in across (3.B.2), net at least 21 ft 9 in long (3.B.3), 36 in at the sidelines and 34 in at the center (3.B.6, 3.B.7); games to 11, 15 or 21 (15.C)" }),
|
|
58
61
|
source({ id: "ittf-laws", title: "Laws of Table Tennis, 2.1 The Table, 2.2 The Net Assembly, 2.11 A Game and 2.12 A Match", by: "International Table Tennis Federation", edition: "2026 statutes, as reproduced by Table Tennis England (issue 1, July 2026)", url: "https://www.tabletennisengland.co.uk/content/uploads/2026/07/Laws-of-Table-Tennis-2026-27.pdf", read: READ, note: "the ITTF Handbook itself was not read: the playing surface 2.74 by 1.525 m and 76 cm above the floor (2.1.1), a white side line and end line 2 cm wide (2.1.4), a white centre line 3 mm wide for doubles (2.1.6), the net 15.25 cm above the playing surface (2.2.3) on posts 15.25 cm high whose outside limits are 15.25 cm outside the side line (2.2.2); a game to 11 (2.11.1), a match the best of an odd number of games (2.12.1)" }),
|
|
62
|
+
// The racket, wall and net sports added after the first five.
|
|
63
|
+
source({ id: "wpv-sitting", title: "Official Sitting Volleyball Rules 2025-2028, Rules 1 Playing Area and 2 Net and Posts", by: "World ParaVolley", edition: "2025-2028 (the English text of 25 July 2025)", url: "https://worldparavolley.org/wp-content/uploads/2025/09/2025-2028-WPV-Official-Sitting-Volleyball-Rules-English-2025-07-25.pdf", read: READ, note: "a court of 10 by 6 m inside a free zone of at least 3 m, and for World ParaVolley, World and Official Competitions 4 m beside the side lines and 6 m behind the end lines (1.1); lines 5 cm wide inside the dimensions (1.3.1, 1.3.2); the centre line's axis dividing the court into two of 6 by 5 m (1.3.3); the attack line's rear edge 2 m from that axis and, for those competitions, extended by five 15 cm lines 20 cm apart to 1.75 m (1.3.4); the service zone 6 m wide, limited by two 15 cm lines 20 cm behind the end line (1.4.2); the net 1.15 m (men) and 1.05 m (women) high (2.1.1), 0.80 m wide and 6.5 to 7 m long (2.2), antennae 1.60 m long and 10 mm across (2.4), posts 0.5 to 1.0 m outside the side lines and 1 m for those competitions (2.5.1)" }),
|
|
64
|
+
source({ id: "fip-padel", title: "Rules of Padel, The Court: Dimensions, Net and Enclosures, and Rule 1 Score in a Game", by: "International Padel Federation", edition: "review of application 1 January 2026", url: "https://www.padelfip.com/wp-content/uploads/2025/12/FIP_Rules-of-Padel.pdf", read: READ, note: "the court 10 m wide by 20 m long (interior measurements, 0.5% tolerance), the service lines 6.95 m from the net, the central service line extending at least 20 cm beyond the service line, all lines 5 cm wide (The Court: Dimensions); the net 10 m long, 0.88 m high at the centre and 0.92 m at the ends, on posts at most 1.05 m high whose outer side coincides with the lateral limit of the court (The Court: Net, 1, 2 and 4); the enclosure, with end walls 4 m high (3 m of wall and 1 m of metal fence) and side walls with a wall area at each end 4 m long and 3 m high (The Court: Enclosures, Ends and Sides); the preferred floor colours green, blue or terracotta (The Court: Ground surface, 2); a match the best of three sets, a set to six games (Rule 1). The rules are headed, not numbered, in the part that describes the court" }),
|
|
65
|
+
source({ id: "wsf-court-specs", title: "Specifications for Squash Courts, clauses 4.01 to 4.03 and 5, and Appendices 1 and 2", by: "World Squash Federation (World Squash)", edition: "28 November 2017, the full specification that applies in World Squash's 2026 transition year", url: "https://www.worldsquash.sport/wp-content/uploads/2021/08/171128_Court-Specifications.pdf", read: READ, note: "a singles court 9,750 by 6,400 mm, a doubles court 7,620 mm wide and the international competition width doubles court 8,420 mm wide (4.01 to 4.03); all markings 50 mm wide (5.01.01); the front wall line 4,570 mm and the service line 1,780 mm up, to the underside (5.02.01, 5.02.02); the tin 480 mm to its top, 330 mm for the competition width (Appendix 2 note 8); the back wall line 2,130 mm up (5.03); the short line's nearest edge 4,260 mm from the back wall, marked for the full width (5.05.01); the half court line from the back wall to the short line (5.05.02); service boxes square with internal sides of 1,600 mm, bounded by lines on three sides and a side wall on the fourth (5.05.03)" }),
|
|
66
|
+
source({ id: "wsf-singles-rules", title: "World Squash Singles Rules, Rule 2 Scoring (2.1 to 2.3)", by: "World Squash", edition: "2024, effective 1 January 2024 (updated November 2023)", url: "https://www.squashireland.ie/wp-content/uploads/2025/04/Rules-of-Singles-Squash-2024-V1.2.pdf", read: READ, note: "World Squash's own copy was not found; the rules were read in the copy Squash Ireland hosts, whose title page reads \"World Squash Singles Rules 2024\": a game to 11 points, to a lead of two from 10-all, and a match normally the best of five games (2.2, 2.3)" }),
|
|
67
|
+
source({ id: "irf-racquetball-rules", title: "Official Rules 2026-2028, Indoor Racquetball, Rule 1.5 Match, Games, Tiebreaker and Rule 2.1 Court Specifications", by: "International Racquetball Federation", edition: "March 2026 (the 2024 Official Rules of Racquetball, copyright IRF, reprinted for 2026-2028)", url: "https://www.internationalracquetball.com/wp-content/uploads/2026/06/1-irf-rulebook_mar26-1.pdf", read: READ, note: "20 feet wide, 40 feet long and 20 feet high with a ceiling, the back wall at least 12 feet high (2.1(a)); lines 1 to 1 1/2 inches wide (2.1(b)); the short line's back edge midway between the walls (2.1(b)1), the service line's front edge 5 feet in front of it (2.1(b)2), the service zone 5 by 20 feet (2.1(b)3), service boxes whose line's nearest edge is 18 inches from the side wall (2.1(b)4), drive serve lines 3 feet from the side wall (2.1(b)5), the receiving line's back edge 5 feet behind the short line's back edge, a broken line of two 21 inch and sixteen 6 inch lines (2.1(b)6), the safety zone (2.1(b)7), the out-of-court line's upper edge 12 feet up the back wall (2.1(b)8); a match three games of five, each to 11 (1.5). The rules are copyrighted and not copied: only these dimensions are used" }),
|
|
68
|
+
source({ id: "irf-racquetball-courts", title: "Racquetball Court Specifications, Section Two Court Dimensions and Tolerances and Section Three Court Markings", by: "International Racquetball Federation", edition: "2025 (revised 1988, 1997, 2013, 2014 and 2024)", url: "https://www.internationalracquetball.com/wp-content/uploads/2026/07/IRF_Courts-specifications-2025.pdf", read: READ, note: "plan dimensions 40 feet by 20 feet by 20 feet (Section Two); markings recommended 1 1/2 inches wide and bright red, black or bright blue on a convertible court with a movable glass back wall (Section Three, Application); the short line, service line, service zone, service boxes, receiving line (a 21 inch end segment and sixteen 6 inch segments with 6 inch spaces) and the back wall out-of-bounds line at 144 inches (Section Three, Required Markings); the screen lines' outside edge three feet from the side wall" }),
|
|
69
|
+
source({ id: "istaf-law", title: "Law of the Game (Regu team event), Laws 1 The Court, 2 The Posts and 3 The Net", by: "International Sepaktakraw Federation", edition: "2013, dated 9 December 2013", url: "https://sepaktakrawindia.com/wp-content/uploads/2022/04/REGU_TEAM-EVENT.pdf", read: READ, note: "the ISTAF's own site refused a connection from a program (a certificate that is not its own), so the 2013 edition was read in the copy a member federation, Sepaktakraw India, hosts, and no later edition was read: the court 13.4 by 6.1 m, free of obstacles to 8 m (1.1); the boundary lines at most 0.04 m wide, drawn inwards (1.1); the centre line 0.02 m (1.2); the quarter circle of 0.9 m radius at both ends of the centre line (1.3); the service circle of 0.3 m radius and 0.04 m width, its centre 2.45 m from the back line and 3.05 m from the sidelines (1.4); a free zone of 3.0 m (1.5); posts 1.55 m for men and 1.45 m for women, 0.3 m from the sidelines in line with the centre line (2.1, 2.2); the net 0.7 m wide and at least 6.1 m long, 1.52 m (men) and 1.42 m (women) at the centre (3.2, 3.5); a match the best of three sets (12.4)" }),
|
|
70
|
+
source({ id: "fiteq-rules", title: "The Official Rules and Regulations of Teqball, 1 The official TEQ table, 2 The teqball court and 6.2 Scoring system", by: "FITEQ (the International Teqball Federation)", edition: "2026", url: "https://cdn.buttercms.com/s6Mb1gRkRJuFP38kpMTh", read: READ, note: "a table 3,000 mm long, 1,500 mm wide (1,700 mm with the net) and 900 mm high with the net (1.1.1 to 1.1.4); a net 1,700 mm wide, 20 mm thick and 140 mm above the table (1.2.1 to 1.2.3); court surrounds 500 to 1,500 mm high (2.1.1.1); the table in the exact middle of the court with the net parallel to the shorter sides (2.1.1.3); the halfway line in the middle, 20 to 50 mm wide (2.1.2); the service line parallel to the net and 3.5 m from the middle of the table, 20 to 50 mm wide (2.1.3); a court of at least 12 m by 16 m by 7 m high, the sides parallel to the net at least 12 m (2.1.4); a set to 12 points, a match the best of three sets (6.2.1, 6.2.2). The rules are copyrighted and not copied: only these dimensions are used" }),
|
|
71
|
+
source({ id: "roundnet-rules", title: "International Roundnet Federation Rules, Chapter 1 Equipment and Court (1.1.2, 1.2.1 to 1.2.4) and 3.4 and 3.5", by: "International Roundnet Federation", edition: "adopted 21 October 2022", url: "https://www.roundnetfederation.org/s/IRF-Rules-10212021docx-1.pdf", read: READ, note: "a set of 91.4 cm diameter and 20.3 cm height (1.1.2); a court of at least 10 by 10 m (33 by 33 feet) recommended, with no out of bounds (1.2.2); a serving line circle 2.6 m (8.5 feet) from the centre of the set, 2.13 m (7 feet) from its edge, with marks at each of the four starting service positions (1.2.3), which are 90 degrees apart (3.8.1), typically parallel and perpendicular to the field (3.8.2); a no hit zone line circle 90 cm (3 feet) from the centre (1.2.4); a game to 15 or 21 and a match typically two games (3.4, 3.5)" }),
|
|
72
|
+
source({ id: "world-netball-rules", title: "Rules of Netball, Rule 1 Technical specifications (Court and related areas, items 1 to 14)", by: "World Netball", edition: "2024 edition (copyright World Netball)", url: "https://netball.sport/wp-content/uploads/2024/01/World-Netball-Rules-Book-2024.pdf", read: READ, note: "side lines 30.5 m (100 ft) and goal lines 15.25 m (50 ft) (items 2 and 3); two transverse lines dividing the court into three equal areas (4); a centre circle 0.9 m (3 ft) across (5); goal circles, semicircles of radius 4.9 m (16 ft) centred on the middle of the outside of the goal line (6); all lines 50 mm wide and part of the area they outline (7); a court surround of 3.05 m (10 ft) (8); a goalpost at the middle of each goal line, its pole 65 to 100 mm across and 3.05 m high, the back of the pole at the outer edge of the goal line, with a ring of 380 mm inside diameter (13, 14). The rules are copyrighted and not copied: only these dimensions are used. World Netball's facilities page gives the same figures" }),
|
|
59
73
|
// The field sports.
|
|
60
74
|
source({ id: "world-rugby-laws", title: "Laws of the Game, Rugby Union, Law 1 The ground (1.3 to 1.10) and its ground diagram", by: "World Rugby", edition: "2026 (the book's own label; no date of effect is printed)", url: "https://passport.world.rugby/media/jxrnmptk/2026en-laws-of-the-game-compressed.pdf", read: READ, note: "the field of play, in-goal, the 22-metre line, the 10-metre, 5-metre and 15-metre dash lines (each dash 5 m), the half-way mark, the goal posts and the flag posts; the places of the dashes are read from the ground diagram on page 26" }),
|
|
61
75
|
source({ id: "nrl-laws", title: "Rugby League Laws of the Game, International Level, with Notes on the Laws and NRL Telstra Premiership Interpretations, Section 1 The Playing Field and Section 18 Ground Markings and Dimension Guidelines", by: "National Rugby League", edition: "2023 edition (April 2023)", url: "https://Nrl.Com/siteassets/operations/the-game/nrl-international-rules-book-2023.pdf", read: READ, note: "100 m by 68 m, in-goal 68 by 8 m, posts 5.5 m apart and 16 m high, lines 15 cm, red 20 m and 40 m lines, scrum lines 10 m and 20 m in from the touchlines" }),
|
|
@@ -80,6 +94,33 @@ export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
|
80
94
|
source({ id: "ncaa-men-lacrosse", title: "NCAA Men's Lacrosse Rules and Interpretations, Rule 1, Sections 2 to 9 and the Men's Lacrosse Field of Play diagram", by: "NCAA", edition: "2027 and 2028 (August 2026)", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/lacrosse/rules/men/PRMLA_RulesBook.pdf", read: READ, note: "110 by 60 yards, the goal, the crease and goal mouth, the attack-area and defensive-area lines, the wing lines" }),
|
|
81
95
|
source({ id: "ncaa-women-lacrosse", title: "NCAA Women's Lacrosse Rules, Rule 1 The Playing Area and Goals (1-1 to 1-21) and Diagram 2", by: "NCAA", edition: "2026 and 2027 (February 2026)", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/lacrosse/rules/women/PRWLA_RulesBook.pdf", read: READ, note: "the field, the goal circle, the restraining line, the centre circle, the 8 m arc and the 12 m fan" }),
|
|
82
96
|
source({ id: "pll-2024", title: "2024 PLL Rulebook, Section II The Field (A to H)", by: "Premier Lacrosse League", edition: "2024, the newest book found: the 2025 and 2026 books could not be read", url: "https://premierlacrosseleague.com/wp-content/uploads/2024/03/2024-PLL-Rulebook.pdf", read: READ, note: "100 by 60 yards, the goal, the crease, the two-point arc, the wing areas" }),
|
|
97
|
+
// Athletics.
|
|
98
|
+
source({ id: "wa-facilities-manual", title: "Track and Field Facilities Manual, 2019 Edition, Chapter 2 Competition Arena (2.1 to 2.5)", by: "World Athletics", edition: "2019 (1 November 2019)", url: "https://worldathletics.org/download/download?filename=7d39b677-8043-45f4-89f4-6c8814023057.pdf&urlslug=Track+and+Field+Facilities+Manual+2019+Edition+-+Chapters+1-3", read: READ, note: "the 400 m standard track, its lanes and running lines, the staggers (Table 2.2.1.6a), the breakline and the curved starts, the hurdles, the steeplechase and its water jump, the facilities of the jumps and throws and the standard arena (Figure 2.5a)" }),
|
|
99
|
+
source({ id: "wa-marking-plan", title: "400 Metre Standard Track, Marking Plan (Figure 2.2.1.6a), scale 1:350", by: "World Athletics", edition: "2019 (13 November 2019)", url: "https://worldathletics.org/download/download?filename=596848ce-6afe-4f00-8eb0-62a019ee215e.pdf&urlslug=Track+and+Field+Facilities+Manual+2019+Edition+-+Marking+Plan+400m+Standard+Track", read: READ, note: "where each start, takeover zone, hurdle and field facility stands, and the colour of each mark" }),
|
|
100
|
+
source({ id: "wa-technical-rules", title: "C1.1 Competition Rules and C2.1 Technical Rules (Rules 14 to 17, 22 to 24, 25 to 38 and 41 to 44 of the Technical Rules)", by: "World Athletics", edition: "in force 1 July 2026", url: "https://worldathletics.org/about-iaaf/documents/book-of-rules", read: READ, note: "the track, the start, the race, hurdles, steeplechase, relays and the field events' runways, circles and sectors" }),
|
|
101
|
+
source({ id: "wa-short-track-plan", title: "Marking Plan for the World Athletics Standard Short Track (Figure 8.3.6c), 200M Standard Short Track Stadium", by: "World Athletics", edition: "1 January 2026", url: "https://worldathletics.org/download/download?filename=0c5f7661-1146-4c45-976b-57f9a232a38d.pdf&urlslug=Track%20and%20Field%20Facilities%20Manual%20-%20Marking%20Plan%20Standard%20Short%20Track", read: READ, note: "the covered track's radius, straights, banking and lane staggers" }),
|
|
102
|
+
// Ice skating.
|
|
103
|
+
source({ id: "isu-speed-skating-rules", title: "Sports Rules - Speed Skating: Special Regulations and Technical Rules, Rules 203 to 206, 226 to 228 and 253 to 257, and H. Track (the layout plan and the measurements of standard 400m tracks)", by: "International Skating Union", edition: "effective 12 June 2026 (dated 1 June 2026)", url: "https://www.isu.org/en/figure-skating-rules/speed-skating-rules", read: READ, note: "the standard 400 m track: two lanes, the inner curve of 25 m to 26 m, the track measured 0.5 m outside the inner edge, a lap made of two straights, an inner and an outer curve and the crossing, the lines of each distance, the blocks, the coaches' area, the padding" }),
|
|
104
|
+
source({ id: "isu-short-track-rules", title: "Special Regulations and Technical Rules Short Track Speed Skating, Rule 280 and the diagram of the tracks", by: "International Skating Union", edition: "2024 (accepted by the 59th ISU Ordinary Congress, June 2024)", url: "https://knsb.nl/documents/558/2024_Special_Regulations_Technical_Rules_Short_Track.pdf", read: READ, note: "the 111.12 m oval on a rink of 60 by 30 m at least: S = 28.85 m, C = R8.50 m, seven blocks in each curve, five or seven tracks, the starting positions of the 500 m and the 1000 m, the laps of each distance; a copy kept by the Dutch federation, the ISU's own page lists the file" }),
|
|
105
|
+
source({ id: "isu-figure-skating-rules", title: "Sports Rules - Figure Skating (Single and Pair Skating and Ice Dance): Rule 342 Required rinks", by: "International Skating Union", edition: "effective 12 June 2026 (dated 10 June 2026)", url: "https://www.isu.org/en/figure-skating-rules/figure-skating-rules", read: READ, note: "the skating area of 60 m by 30 m if possible, not larger and not less than 56 m by 26 m; the judges and the referee at the rinkboard, the technical panel in an elevated position if possible" }),
|
|
106
|
+
// Budō: judo, karate, kendo, sumo, kyudo and the tatami of a dojo.
|
|
107
|
+
source({ id: "ijf-sor", title: "Sport and Organisation Rules of the International Judo Federation, 8.7 Field of Play and Competition Area, Article 9 and B1.8 (the kata area)", by: "International Judo Federation", edition: "version of 21 January 2026", url: "https://78884ca60822a34fb0e6-082b8fd5551e97bc65e327988b444396.ssl.cf3.rackcdn.com/up/2026/01/IJF_Sport_and_Organisation_Rul-1769443746.pdf", read: BUDO_READ, note: "the contest and safety areas, the common safe zone, the free zone, the tatami of 1 m by 2 m and its two official colours, the platform; the kata area and its marks" }),
|
|
108
|
+
source({ id: "ijf-sor-2020", title: "Sports and Organization Rules of the International Judo Federation, 18.1 Competition Area", by: "International Judo Federation", edition: "2020 (the version of June 2020)", url: "https://78884ca60822a34fb0e6-082b8fd5551e97bc65e327988b444396.ssl.cf3.rackcdn.com/up/2020/06/IJF_Sport_and_Organisation_Rul-1592329624.pdf", read: BUDO_READ, note: "the blue and the white tape, 10 cm by 50 cm, 4 m apart at the centre of the contest area, the blue to the referee's right (the 2026 version no longer marks them)" }),
|
|
109
|
+
source({ id: "ajjf-guide", title: "大会運営ガイドブック2023 (Tournament Management Guidebook 2023), 2-1 畳, 2-3 試合場 and 2-4 開始線と選手の位置", by: "公益財団法人全日本柔道連盟 (All Japan Judo Federation)", edition: "2023, as of 2023-12-15", url: "https://www.judo.or.jp/cms/wp-content/uploads/2021/03/%E5%A4%A7%E4%BC%9A%E9%81%8B%E5%96%B6%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF2023_20240229.pdf", read: BUDO_READ, note: "the domestic tatami of 182 cm by 91 cm (and the international 200 by 100 cm, and their halves), 5 or 6 cm thick; the red tatami of the danger zone; the red and white tape 4 m (2 ken) apart" }),
|
|
110
|
+
source({ id: "wkf-kumite", title: "WKF Kumite Competition Rules, Article 1: Kumite Competition Area, and 8.6 (the scale of points)", by: "World Karate Federation", edition: "Rules version 2026.01", url: "https://www.wkf.net/files/pdf/documents/WKF_2026_Kumite_Competition_Rules_MASTER_COPY_V13FINAL.pdf", read: BUDO_READ, note: "the matted square of 8 m measured from the outside, its outer 1 m in another colour, the 2 m safety area, 2 m between areas, the two inverted mats 1 m from the centre, the referee and the judges; yuko 1, waza-ari 2, ippon 3" }),
|
|
111
|
+
source({ id: "wkf-kata", title: "WKF Kata Competition Rules, Article 1: Kata Competition Area", by: "World Karate Federation", edition: "valid from 1 January 2026", url: "https://www.wkf.net/files/pdf/documents/WKF%20Kata%20Competition%20Rules%202026%20MASTER%20COPY_V2.pdf", read: BUDO_READ, note: "the matted square of 8 m measured from the outside and the safety area of 2 m" }),
|
|
112
|
+
source({ id: "fik-regulations", title: "Regulations of Kendo Shiai and Shinpan, Article 2 (Shiai-jo), the Subsidiary Rules' Article 1 and Figure 1", by: "International Kendo Federation, with the All Japan Kendo Federation", edition: "the bilingual text of July 2021, as the Kendo Association of Serbia publishes it", url: "https://kendo.rs/files/202107-Regulations-of-Kendo-Shiai-and-Shinpan.pdf", read: BUDO_READ, note: "a wooden floor of 9 m to 11 m a side, lines 5 cm to 10 cm and white, the cross of 30 cm to 40 cm, two kaishi-sen each 50 cm long and 1.4 m from the centre, 1.5 m kept outside" }),
|
|
113
|
+
source({ id: "jsa-dohyo", title: "相撲規則 土俵規定 第一条 (Sumo Rules, Dohyō Regulations, Article 1), as 笹川スポーツ財団 (Sasakawa Sports Foundation) quotes it: 高さ34から60センチ, 一辺6メートル70, 円の直径4メートル55, 二十俵", by: "日本相撲協会 (Japan Sumo Association), read in the Sasakawa Sports Foundation's sports dictionary", edition: "the page as read on the date given", url: "https://www.ssf.or.jp/knowledge/dictionary/sumo.html", read: BUDO_READ, note: "the height of 34 cm to 60 cm, the square of 6.7 m, the circle of 4.55 m of 20 tawara" }),
|
|
114
|
+
source({ id: "jsa-quiz", title: "大相撲クイズ No.355 (the 20 tawara of the circle: 4 tokudawara and 4 between each) and No.1091 (the shikiri-sen: 6 cm wide, 90 cm long, 70 cm apart), as ozumo.jp sets them out", by: "日本相撲協会 (Japan Sumo Association), read on ozumo.jp", edition: "the page as read on the date given", url: "https://ozumo.jp/dohyo-size/", read: BUDO_READ, note: "the tawara of the circle and the starting lines" }),
|
|
115
|
+
source({ id: "wikipedia-dohyo", title: "Dohyō (English Wikipedia): the ring of 15 shaku, the square platform, the tokudawara, the shikiri-sen and the four tassels of the roof", by: "Wikipedia contributors (CC BY-SA 4.0)", edition: "the article as read on the date given", url: "https://en.wikipedia.org/wiki/Dohy%C5%8D", read: BUDO_READ, note: "the colours and the quarters of the four tassels (green east, red south, white west, black north); no text is copied" }),
|
|
116
|
+
source({ id: "znkr-unei", title: "弓道競技運営要領 (運営マニュアル), 第6条 射場の設営 and the figures of the appendix", by: "公益財団法人全日本弓道連盟 (All Nippon Kyudo Federation)", edition: "revised 1 April 2016 (平成28年4月1日改訂)", url: "https://www.kyudo.jp/pdf/documents/play_direction_manual.pdf", read: BUDO_READ, note: "the ceiling of 4.0 m, 1.8 m between shooters (1.6 m to 2.0 m), 2.0 m from the shooting position to the honza, 5 shooters in a line; a hall of 28 m and one of 60 m" }),
|
|
117
|
+
source({ id: "wakayama-kyudo-2015", title: "国民体育大会 弓道競技実施要項 (Wakayama 2015), 競技種目: 近的競技 (射距離28m, 36cm霞的, 標的の中心は安土敷より27cm, 傾斜5度), 遠的競技 (射距離60m, 100cm得点的, 標的の中心は地上97cm, 傾斜15度)", by: "和歌山県 (Wakayama Prefecture), applying the 全日本弓道連盟 rules", edition: "2015", url: "https://www.pref.wakayama.lg.jp/prefg/wakayama2015/kokutai/files/2015/03/edf0b88c95044b1a821a6040e786c4b1.pdf", read: BUDO_READ, note: "the distances, the targets, their height and their tilt" }),
|
|
118
|
+
source({ id: "tatami-sizes", title: "Tatami (English Wikipedia) and 畳 (Japanese Wikipedia): the sizes of Kyōma 1910 by 955 mm, Chūkyōma 1820 by 910 mm, Edoma 1760 by 880 mm and Danchima 1700 by 850 mm, and the layouts in which four mats never meet at a corner", by: "Wikipedia contributors (CC BY-SA 4.0)", edition: "the articles as read on the date given", url: "https://ja.wikipedia.org/wiki/%E7%95%B3", read: BUDO_READ, note: "the sizes; shūgi-jiki (the lay in which no four corners meet); no text is copied" }),
|
|
119
|
+
source({ id: "kodokan-facilities", title: "施設のご案内 (Facilities): the International Judo Center (the new building) and its dojos in jō, and 所在地", by: "講道館 (Kodokan)", edition: "the page as read on the date given", url: "https://kdkjudo.org/%e6%96%bd%e8%a8%ad%e3%81%ae%e3%81%94%e6%a1%88%e5%86%85/", read: BUDO_READ, note: "the main dojo of 420 jō on the 7th floor, the school dojo (240) and the international dojo (192) on the 6th, the women's (240) and the boys' (114) on the 5th; completed in 1984" }),
|
|
120
|
+
source({ id: "wikipedia-kodokan", title: "Kodokan Judo Institute (English Wikipedia): the main dojo on the seventh floor, 420 mats, four official contests at the same time, about 900 spectators on the eighth floor; 1,206 mats across the five main dojos", by: "Wikipedia contributors (CC BY-SA 4.0)", edition: "the article as read on the date given", url: "https://en.wikipedia.org/wiki/Kodokan_Judo_Institute", read: BUDO_READ, note: "the 420 mats, four contests at once, the gallery of about 900 and the total of 1,206; it gives no date for the colours of the mats" }),
|
|
121
|
+
source({ id: "budokan-overview", title: "日本武道館建物等概要 (Nippon Budokan: buildings and seats), the arena plan: a regular octagon of 55 m across, 60 m corner to corner, 23 m a side, 2,513 m²", by: "公益財団法人日本武道館 (Nippon Budokan)", edition: "the leaflet of October 2021", url: "https://www.nipponbudokan.or.jp/pdf/202110.pdf", read: BUDO_READ, note: "opened 3 October 1964; at most 14,501; the arena as an octagon" }),
|
|
122
|
+
source({ id: "butokuden-ja", title: "旧武徳殿 (Japanese Wikipedia): built in 1899 by the Dai Nippon Butokukai, designed by Matsumuro Shigemitsu, an Important Cultural Property since 1996, 1,200 seats", by: "Wikipedia contributors (CC BY-SA 4.0)", edition: "the article as read on the date given", url: "https://ja.wikipedia.org/wiki/%E6%97%A7%E6%AD%A6%E5%BE%B3%E6%AE%BF", read: BUDO_READ, note: "the dates, the address and the seats; no mat count was found" }),
|
|
123
|
+
source({ id: "wikipedia-halls", title: "Wikipedia and Wikidata on the halls: Nippon Budokan, Ryōgoku Kokugikan, Kodokan, Butokuden and the Budokwai (their capacities, opening dates, coordinates and the events held in them)", by: "Wikipedia contributors (CC BY-SA 4.0) and Wikidata (CC0)", edition: "the articles and items as read on the date given", url: "https://www.wikidata.org/wiki/Q386246", read: BUDO_READ, note: "capacity 11,098 (Wikidata P1083 and English Wikipedia) for the Kokugikan; 14,471 for the Budokan; the items Q1165384, Q386246, Q176821, Q1017987 and Q3646473; no text is copied" }),
|
|
83
124
|
// Baseball and softball.
|
|
84
125
|
source({ id: "obr-2026", title: "Official Baseball Rules, 2.01, 2.03 and 2.04 (the rules Minor League Baseball plays under)", by: "Major League Baseball", edition: "2026", url: "https://mktg.mlbstatic.com/mlb/official-information/2026-official-baseball-rules.pdf", read: READ, note: "bases 18 inches (2.03), the fence at least 325 and 400 feet (2.01 note); Minor League Baseball's own facility standards are not public" }),
|
|
85
126
|
source({ id: "ncaa-baseball", title: "NCAA Baseball Rules, Rule 1, and the field diagram", by: "NCAA", edition: "2027 and 2028 rules book (printed October 2026)", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/baseball/rules/PRMBA_RulesBook.pdf", read: READ, note: "90-foot square (1-2-a), recommended fence 330, 375 and 400 feet (1-2-b), boxes 4 by 6 feet (1-3-a), backstop 45 feet (1-5-b); diagram: PRMBA_Re-imagedFieldDiagrams.pdf" }),
|
package/dist/leagues/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface Named {
|
|
|
5
5
|
ja: string;
|
|
6
6
|
}
|
|
7
7
|
/** The families of surface a league is a variant of. */
|
|
8
|
-
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball";
|
|
8
|
+
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball" | "athletics" | "skating" | "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo";
|
|
9
9
|
/** The state of one marking from a season on, in a league's own history: the season it began, what it was, and its sources. */
|
|
10
10
|
export interface LeagueSpan<T> {
|
|
11
11
|
/** The first season it was in force, or `null` for the state before the first change that is cited. */
|
package/dist/leagues-entry.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { FAMILY_OF, LEAGUES, LEAGUE_SOURCES, VARIANTS, aflOf, chooseLeague, courtOf, cricketOf, diamondOf, fieldHockeyOf, fieldOf, gaelicOf, handballOf, lacrosseOf, rugbyOf, hasHistory, leagueAt, leagueAtOf, leagueById, leagueChanges, leagueFigures, leagueIds, leagueSeason, leagueSize, netOf, rinkOf, sheetOf } from "./leagues.ts";
|
|
2
|
-
export type { BaseballLeague, BasketballLeague, CourtFigures, CurlingLeague, SheetFigures, BadmintonFigures, BadmintonLeague, FreeZone, FreeZones, NetFigures, NetLeague, NetSport, PickleballFigures, PickleballLeague, TableTennisFigures, TableTennisLeague, TennisFigures, TennisLeague, VolleyballFigures, VolleyballLeague, CourtMarks, DiamondFigures, Family, FootballLeague, HockeyLeague, League, LeagueAt, LeagueChange, LeagueSource, LeagueSpan, Named, RinkFigures } from "./leagues.ts";
|
|
2
|
+
export type { BaseballLeague, BasketballLeague, CourtFigures, CurlingLeague, SheetFigures, BadmintonFigures, BadmintonLeague, FreeZone, FreeZones, NetFigures, NetLeague, NetSport, NetballFigures, NetballLeague, PadelFigures, PadelLeague, PickleballFigures, PickleballLeague, RacquetballFigures, RacquetballLeague, RoundnetFigures, RoundnetLeague, SepakTakrawFigures, SepakTakrawLeague, SquashFigures, SquashLeague, TableTennisFigures, TableTennisLeague, TennisFigures, TennisLeague, TeqballFigures, TeqballLeague, VolleyballFigures, VolleyballLeague, CourtMarks, DiamondFigures, Family, FootballLeague, HockeyLeague, League, LeagueAt, LeagueChange, LeagueSource, LeagueSpan, Named, RinkFigures } from "./leagues.ts";
|
|
3
3
|
export { MLB_DIAMOND } from "./leagues/baseball.ts";
|
|
4
4
|
export { NBA_COURT } from "./leagues/basketball.ts";
|
|
5
5
|
export { NHL_RINK } from "./leagues/hockey.ts";
|
|
6
6
|
export { CURLING_CANADA_SHEET, CURLING_LEAGUES, WCF_SHEET } from "./leagues/curling.ts";
|
|
7
|
-
export { BADMINTON_LEAGUES, BWF_BADMINTON, FIVB_BEACH, FIVB_INDOOR, ITF_TENNIS, ITTF_TABLE, PICKLEBALL_LEAGUES, TABLE_TENNIS_LEAGUES, TENNIS_LEAGUES, USAP_PICKLEBALL, VOLLEYBALL_LEAGUES } from "./leagues/courts.ts";
|
|
7
|
+
export { BADMINTON_LEAGUES, BWF_BADMINTON, FIP_PADEL, FITEQ_TEQBALL, FIVB_BEACH, FIVB_INDOOR, IRF_RACQUETBALL, IRF_ROUNDNET, ISTAF_SEPAK_TAKRAW, ITF_TENNIS, ITTF_TABLE, NETBALL_LEAGUES, PADEL_LEAGUES, PICKLEBALL_LEAGUES, RACQUETBALL_LEAGUES, ROUNDNET_LEAGUES, SEPAK_TAKRAW_LEAGUES, SQUASH_LEAGUES, TABLE_TENNIS_LEAGUES, TENNIS_LEAGUES, TEQBALL_LEAGUES, USAP_PICKLEBALL, VOLLEYBALL_LEAGUES, WN_NETBALL, WPV_SITTING, WSF_SQUASH, WSF_SQUASH_DOUBLES, WSF_SQUASH_WIDE } from "./leagues/courts.ts";
|
|
8
8
|
export { AFL_GROUND, AFL_GROUNDS, AFL_LEAGUES } from "./leagues/aussie.ts";
|
|
9
9
|
export type { AflFigures, AflGround, AflLeague } from "./leagues/aussie.ts";
|
|
10
10
|
export { CRICKET_LEAGUES, ICC_MEN_GROUND, ICC_WOMEN_GROUND, MCC_GROUND } from "./leagues/cricket.ts";
|
|
@@ -19,5 +19,7 @@ export { LACROSSE_LEAGUES, NCAA_MEN_FIELD, NCAA_WOMEN_FIELD, NLL_FLOOR, PLL_FIEL
|
|
|
19
19
|
export type { LacrosseFigures, LacrosseLeague } from "./leagues/lacrosse.ts";
|
|
20
20
|
export { IRL_FIELD, NRL_FIELD, RUGBY_LEAGUES, WORLD_RUGBY_FIELD } from "./leagues/rugby.ts";
|
|
21
21
|
export type { RugbyFigures, RugbyLeague } from "./leagues/rugby.ts";
|
|
22
|
+
export { ATHLETICS_LEAGUES, WA_SHORT_STAGGER_TABLE, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_STANDARD_TRACK } from "./leagues/athletics.ts";
|
|
23
|
+
export type { AthleticsFigures, AthleticsLeague } from "./leagues/athletics.ts";
|
|
22
24
|
export { fixed, span } from "./leagues/fields.ts";
|
|
23
25
|
export type { Span } from "./leagues/fields.ts";
|
package/dist/leagues-entry.js
CHANGED
|
@@ -4,7 +4,7 @@ export { MLB_DIAMOND } from "./leagues/baseball.js";
|
|
|
4
4
|
export { NBA_COURT } from "./leagues/basketball.js";
|
|
5
5
|
export { NHL_RINK } from "./leagues/hockey.js";
|
|
6
6
|
export { CURLING_CANADA_SHEET, CURLING_LEAGUES, WCF_SHEET } from "./leagues/curling.js";
|
|
7
|
-
export { BADMINTON_LEAGUES, BWF_BADMINTON, FIVB_BEACH, FIVB_INDOOR, ITF_TENNIS, ITTF_TABLE, PICKLEBALL_LEAGUES, TABLE_TENNIS_LEAGUES, TENNIS_LEAGUES, USAP_PICKLEBALL, VOLLEYBALL_LEAGUES } from "./leagues/courts.js";
|
|
7
|
+
export { BADMINTON_LEAGUES, BWF_BADMINTON, FIP_PADEL, FITEQ_TEQBALL, FIVB_BEACH, FIVB_INDOOR, IRF_RACQUETBALL, IRF_ROUNDNET, ISTAF_SEPAK_TAKRAW, ITF_TENNIS, ITTF_TABLE, NETBALL_LEAGUES, PADEL_LEAGUES, PICKLEBALL_LEAGUES, RACQUETBALL_LEAGUES, ROUNDNET_LEAGUES, SEPAK_TAKRAW_LEAGUES, SQUASH_LEAGUES, TABLE_TENNIS_LEAGUES, TENNIS_LEAGUES, TEQBALL_LEAGUES, USAP_PICKLEBALL, VOLLEYBALL_LEAGUES, WN_NETBALL, WPV_SITTING, WSF_SQUASH, WSF_SQUASH_DOUBLES, WSF_SQUASH_WIDE } from "./leagues/courts.js";
|
|
8
8
|
export { AFL_GROUND, AFL_GROUNDS, AFL_LEAGUES } from "./leagues/aussie.js";
|
|
9
9
|
export { CRICKET_LEAGUES, ICC_MEN_GROUND, ICC_WOMEN_GROUND, MCC_GROUND } from "./leagues/cricket.js";
|
|
10
10
|
export { FIELD_HOCKEY_LEAGUES, FIH_PITCH } from "./leagues/fieldhockey.js";
|
|
@@ -12,4 +12,5 @@ export { GAA_FOOTBALL_FIELD, GAA_HURLING_FIELD, GAELIC_LEAGUES } from "./leagues
|
|
|
12
12
|
export { HANDBALL_LEAGUES, IHF_COURT } from "./leagues/handball.js";
|
|
13
13
|
export { LACROSSE_LEAGUES, NCAA_MEN_FIELD, NCAA_WOMEN_FIELD, NLL_FLOOR, PLL_FIELD, WORLD_BOX_FLOOR, WORLD_MEN_FIELD, WORLD_WOMEN_FIELD } from "./leagues/lacrosse.js";
|
|
14
14
|
export { IRL_FIELD, NRL_FIELD, RUGBY_LEAGUES, WORLD_RUGBY_FIELD } from "./leagues/rugby.js";
|
|
15
|
+
export { ATHLETICS_LEAGUES, WA_SHORT_STAGGER_TABLE, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_STANDARD_TRACK } from "./leagues/athletics.js";
|
|
15
16
|
export { fixed, span } from "./leagues/fields.js";
|
package/dist/leagues.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ import { type NetLeague } from "./leagues/courts.ts";
|
|
|
7
7
|
import { type AflLeague, type AflSpec } from "./leagues/aussie.ts";
|
|
8
8
|
import { type CricketLeague, type CricketSpec } from "./leagues/cricket.ts";
|
|
9
9
|
import { type FieldHockeyLeague, type FieldHockeySpec } from "./leagues/fieldhockey.ts";
|
|
10
|
+
import { type AthleticsFigures, type AthleticsLeague } from "./leagues/athletics.ts";
|
|
11
|
+
import { type SkatingFigures, type SkatingLeague } from "./leagues/skating.ts";
|
|
12
|
+
import { type BudoLeague } from "./leagues/budo.ts";
|
|
10
13
|
import { type GaelicLeague, type GaelicSpec } from "./leagues/gaelic.ts";
|
|
11
14
|
import { type HandballLeague, type HandballSpec } from "./leagues/handball.ts";
|
|
12
15
|
import { type LacrosseLeague, type LacrosseSpec } from "./leagues/lacrosse.ts";
|
|
@@ -28,19 +31,25 @@ export type { HandballFigures, HandballLeague } from "./leagues/handball.ts";
|
|
|
28
31
|
export type { LacrosseFigures, LacrosseLeague } from "./leagues/lacrosse.ts";
|
|
29
32
|
export type { RugbyFigures, RugbyLeague } from "./leagues/rugby.ts";
|
|
30
33
|
export type { Span } from "./leagues/fields.ts";
|
|
31
|
-
export type {
|
|
34
|
+
export type { AthleticsFigures, AthleticsLeague } from "./leagues/athletics.ts";
|
|
35
|
+
export { WA_STANDARD_TRACK, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_SHORT_STAGGER_TABLE } from "./leagues/athletics.ts";
|
|
36
|
+
export type { SkatingFigures, SkatingLeague, LongTrackFigures, ShortTrackFigures, FigureRinkFigures } from "./leagues/skating.ts";
|
|
37
|
+
export { ISU_LONG_TRACK, ISU_SHORT_TRACK, ISU_FIGURE_RINK, ISU_LONG_TRACK_TABLE } from "./leagues/skating.ts";
|
|
38
|
+
export type { BudoFigures, BudoLeague, DojoFigures, DojoLeague, JudoFigures, JudoLeague, KarateFigures, KarateLeague, KendoFigures, KendoLeague, KyudoFigures, KyudoLeague, Mat, SumoFigures, SumoLeague } from "./leagues/budo.ts";
|
|
39
|
+
export { AJJF_CONTEST, BUDO_LEAGUES, ENTEKI, FIK_SHIAI_JO, IJF_CONTEST, IJF_KATA, JSA_DOHYO, KINTEKI, WKF_KATA, WKF_KUMITE } from "./leagues/budo.ts";
|
|
40
|
+
export type { BadmintonFigures, BadmintonLeague, FreeZone, FreeZones, NetFigures, NetLeague, NetSport, NetballFigures, NetballLeague, PadelFigures, PadelLeague, PickleballFigures, PickleballLeague, RacquetballFigures, RacquetballLeague, RoundnetFigures, RoundnetLeague, SepakTakrawFigures, SepakTakrawLeague, SquashFigures, SquashLeague, TableTennisFigures, TableTennisLeague, TennisFigures, TennisLeague, TeqballFigures, TeqballLeague, VolleyballFigures, VolleyballLeague } from "./leagues/courts.ts";
|
|
32
41
|
export type { CourtFigures, CourtMarks } from "./leagues/basketball.ts";
|
|
33
42
|
export type { RinkFigures } from "./leagues/hockey.ts";
|
|
34
43
|
export type { SheetFigures } from "./leagues/curling.ts";
|
|
35
44
|
export type { DiamondFigures } from "./leagues/baseball.ts";
|
|
36
45
|
export type { Family, LeagueSpan, Named } from "./leagues/types.ts";
|
|
37
46
|
/** A league: a variant of a family of surface. */
|
|
38
|
-
export type League = BasketballLeague | HockeyLeague | FootballLeague | BaseballLeague | CurlingLeague | NetLeague | LacrosseLeague | RugbyLeague | AflLeague | GaelicLeague | CricketLeague | FieldHockeyLeague | HandballLeague;
|
|
47
|
+
export type League = BasketballLeague | HockeyLeague | FootballLeague | BaseballLeague | CurlingLeague | NetLeague | LacrosseLeague | RugbyLeague | AflLeague | GaelicLeague | CricketLeague | FieldHockeyLeague | HandballLeague | AthleticsLeague | SkatingLeague | BudoLeague;
|
|
39
48
|
/** The family of surface each sport draws; soccer's variants are its pitches (`pitch`), not leagues. */
|
|
40
49
|
export declare const FAMILY_OF: Readonly<Record<Sport, Family | undefined>>;
|
|
41
50
|
/**
|
|
42
51
|
* The leagues each sport can draw, in the order a menu lists them, the sport's own first (the three football sports share their
|
|
43
|
-
* list, the football leagues). Soccer
|
|
52
|
+
* list, the football leagues). Soccer and the pools have none.
|
|
44
53
|
*/
|
|
45
54
|
export declare const LEAGUES: Readonly<Record<Sport, readonly League[]>>;
|
|
46
55
|
/** Every league of every family, once each. */
|
|
@@ -123,7 +132,7 @@ export declare const courtOf: (league: BasketballLeague, year?: number) => Court
|
|
|
123
132
|
export declare const rinkOf: (league: HockeyLeague, year?: number) => RinkSpec;
|
|
124
133
|
/** A curling sheet of a league, in feet. A sheet has no history; a year is ignored. */
|
|
125
134
|
export declare const sheetOf: (league?: CurlingLeague) => SheetSpec;
|
|
126
|
-
/** A net sport's court of a league (tennis, volleyball and
|
|
135
|
+
/** A net sport's court of a league (tennis, volleyball, beach and sitting volleyball, badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet and netball), in feet. These courts have no history; a year is ignored. */
|
|
127
136
|
export declare const netOf: <L extends NetLeague>(league: L) => L["dimensions"];
|
|
128
137
|
/** A lacrosse surface of a league, in feet (the box floor, or a field). These have no history; a year is ignored. */
|
|
129
138
|
export declare const lacrosseOf: (league: LacrosseLeague) => LacrosseSpec;
|
|
@@ -137,6 +146,10 @@ export declare const gaelicOf: (league: GaelicLeague) => GaelicSpec;
|
|
|
137
146
|
export declare const cricketOf: (league: CricketLeague) => CricketSpec;
|
|
138
147
|
/** A field hockey pitch, in feet. */
|
|
139
148
|
export declare const fieldHockeyOf: (league: FieldHockeyLeague) => FieldHockeySpec;
|
|
149
|
+
/** A skating rink of a league, in feet. */
|
|
150
|
+
export declare const skatingOf: (league: SkatingLeague) => SkatingFigures;
|
|
151
|
+
/** An athletics track of a league, in feet. */
|
|
152
|
+
export declare const athleticsOf: (league: AthleticsLeague) => AthleticsFigures;
|
|
140
153
|
/** A handball court, in feet. */
|
|
141
154
|
export declare const handballOf: (league: HandballLeague) => HandballSpec;
|
|
142
155
|
/** A football field of a league in a season: the spec, in feet. */
|