@nativesquare/soma 0.9.3 → 0.10.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.
Files changed (202) hide show
  1. package/dist/client/index.d.ts +96 -33
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/client/index.js +80 -35
  4. package/dist/client/index.js.map +1 -1
  5. package/dist/component/_generated/api.d.ts +18 -0
  6. package/dist/component/_generated/api.d.ts.map +1 -1
  7. package/dist/component/_generated/api.js.map +1 -1
  8. package/dist/component/_generated/component.d.ts +43 -9
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/garmin/auth.d.ts +0 -4
  11. package/dist/component/garmin/auth.d.ts.map +1 -1
  12. package/dist/component/garmin/auth.js +0 -8
  13. package/dist/component/garmin/auth.js.map +1 -1
  14. package/dist/component/garmin/private.d.ts +20 -3
  15. package/dist/component/garmin/private.d.ts.map +1 -1
  16. package/dist/component/garmin/private.js +17 -26
  17. package/dist/component/garmin/private.js.map +1 -1
  18. package/dist/component/garmin/public.d.ts +4 -4
  19. package/dist/component/garmin/public.d.ts.map +1 -1
  20. package/dist/component/garmin/public.js +6 -1
  21. package/dist/component/garmin/public.js.map +1 -1
  22. package/dist/component/garmin/webhooks.d.ts +4 -0
  23. package/dist/component/garmin/webhooks.d.ts.map +1 -1
  24. package/dist/component/garmin/webhooks.js +23 -18
  25. package/dist/component/garmin/webhooks.js.map +1 -1
  26. package/dist/component/schema.d.ts +2 -2
  27. package/dist/component/schema.d.ts.map +1 -1
  28. package/dist/component/schema.js +5 -3
  29. package/dist/component/schema.js.map +1 -1
  30. package/dist/{strava → component/strava}/auth.d.ts +15 -48
  31. package/dist/component/strava/auth.d.ts.map +1 -0
  32. package/dist/{strava → component/strava}/auth.js +4 -39
  33. package/dist/component/strava/auth.js.map +1 -0
  34. package/dist/component/strava/client.d.ts +8 -0
  35. package/dist/component/strava/client.d.ts.map +1 -0
  36. package/dist/component/strava/client.js +18 -0
  37. package/dist/component/strava/client.js.map +1 -0
  38. package/dist/component/strava/private.d.ts +19 -0
  39. package/dist/component/strava/private.d.ts.map +1 -1
  40. package/dist/component/strava/private.js +52 -2
  41. package/dist/component/strava/private.js.map +1 -1
  42. package/dist/component/strava/public.d.ts +87 -12
  43. package/dist/component/strava/public.d.ts.map +1 -1
  44. package/dist/component/strava/public.js +218 -92
  45. package/dist/component/strava/public.js.map +1 -1
  46. package/dist/component/strava/transform/activity.d.ts +19 -0
  47. package/dist/component/strava/transform/activity.d.ts.map +1 -0
  48. package/dist/{strava → component/strava/transform}/activity.js +21 -41
  49. package/dist/component/strava/transform/activity.js.map +1 -0
  50. package/dist/{strava → component/strava/transform}/athlete.d.ts +4 -10
  51. package/dist/component/strava/transform/athlete.d.ts.map +1 -0
  52. package/dist/{strava → component/strava/transform}/athlete.js +2 -8
  53. package/dist/component/strava/transform/athlete.js.map +1 -0
  54. package/dist/component/strava/transform/maps/sportType.d.ts +7 -0
  55. package/dist/component/strava/transform/maps/sportType.d.ts.map +1 -0
  56. package/dist/{strava/maps/sport-type.js → component/strava/transform/maps/sportType.js} +4 -2
  57. package/dist/component/strava/transform/maps/sportType.js.map +1 -0
  58. package/dist/component/strava/types/stravaApi/client/client.gen.d.ts +3 -0
  59. package/dist/component/strava/types/stravaApi/client/client.gen.d.ts.map +1 -0
  60. package/dist/component/strava/types/stravaApi/client/client.gen.js +236 -0
  61. package/dist/component/strava/types/stravaApi/client/client.gen.js.map +1 -0
  62. package/dist/component/strava/types/stravaApi/client/index.d.ts +9 -0
  63. package/dist/component/strava/types/stravaApi/client/index.d.ts.map +1 -0
  64. package/dist/component/strava/types/stravaApi/client/index.js +7 -0
  65. package/dist/component/strava/types/stravaApi/client/index.js.map +1 -0
  66. package/dist/component/strava/types/stravaApi/client/types.gen.d.ts +118 -0
  67. package/dist/component/strava/types/stravaApi/client/types.gen.d.ts.map +1 -0
  68. package/dist/component/strava/types/stravaApi/client/types.gen.js +3 -0
  69. package/dist/component/strava/types/stravaApi/client/types.gen.js.map +1 -0
  70. package/dist/component/strava/types/stravaApi/client/utils.gen.d.ts +34 -0
  71. package/dist/component/strava/types/stravaApi/client/utils.gen.d.ts.map +1 -0
  72. package/dist/component/strava/types/stravaApi/client/utils.gen.js +229 -0
  73. package/dist/component/strava/types/stravaApi/client/utils.gen.js.map +1 -0
  74. package/dist/component/strava/types/stravaApi/client.gen.d.ts +13 -0
  75. package/dist/component/strava/types/stravaApi/client.gen.d.ts.map +1 -0
  76. package/dist/component/strava/types/stravaApi/client.gen.js +4 -0
  77. package/dist/component/strava/types/stravaApi/client.gen.js.map +1 -0
  78. package/dist/component/strava/types/stravaApi/core/auth.gen.d.ts +19 -0
  79. package/dist/component/strava/types/stravaApi/core/auth.gen.d.ts.map +1 -0
  80. package/dist/component/strava/types/stravaApi/core/auth.gen.js +15 -0
  81. package/dist/component/strava/types/stravaApi/core/auth.gen.js.map +1 -0
  82. package/dist/component/strava/types/stravaApi/core/bodySerializer.gen.d.ts +26 -0
  83. package/dist/component/strava/types/stravaApi/core/bodySerializer.gen.d.ts.map +1 -0
  84. package/dist/component/strava/types/stravaApi/core/bodySerializer.gen.js +58 -0
  85. package/dist/component/strava/types/stravaApi/core/bodySerializer.gen.js.map +1 -0
  86. package/dist/component/strava/types/stravaApi/core/params.gen.d.ts +44 -0
  87. package/dist/component/strava/types/stravaApi/core/params.gen.d.ts.map +1 -0
  88. package/dist/component/strava/types/stravaApi/core/params.gen.js +101 -0
  89. package/dist/component/strava/types/stravaApi/core/params.gen.js.map +1 -0
  90. package/dist/component/strava/types/stravaApi/core/pathSerializer.gen.d.ts +34 -0
  91. package/dist/component/strava/types/stravaApi/core/pathSerializer.gen.d.ts.map +1 -0
  92. package/dist/component/strava/types/stravaApi/core/pathSerializer.gen.js +107 -0
  93. package/dist/component/strava/types/stravaApi/core/pathSerializer.gen.js.map +1 -0
  94. package/dist/component/strava/types/stravaApi/core/queryKeySerializer.gen.d.ts +19 -0
  95. package/dist/component/strava/types/stravaApi/core/queryKeySerializer.gen.d.ts.map +1 -0
  96. package/dist/component/strava/types/stravaApi/core/queryKeySerializer.gen.js +93 -0
  97. package/dist/component/strava/types/stravaApi/core/queryKeySerializer.gen.js.map +1 -0
  98. package/dist/component/strava/types/stravaApi/core/serverSentEvents.gen.d.ts +72 -0
  99. package/dist/component/strava/types/stravaApi/core/serverSentEvents.gen.d.ts.map +1 -0
  100. package/dist/component/strava/types/stravaApi/core/serverSentEvents.gen.js +134 -0
  101. package/dist/component/strava/types/stravaApi/core/serverSentEvents.gen.js.map +1 -0
  102. package/dist/component/strava/types/stravaApi/core/types.gen.d.ts +79 -0
  103. package/dist/component/strava/types/stravaApi/core/types.gen.d.ts.map +1 -0
  104. package/dist/component/strava/types/stravaApi/core/types.gen.js +3 -0
  105. package/dist/component/strava/types/stravaApi/core/types.gen.js.map +1 -0
  106. package/dist/component/strava/types/stravaApi/core/utils.gen.d.ts +20 -0
  107. package/dist/component/strava/types/stravaApi/core/utils.gen.d.ts.map +1 -0
  108. package/dist/component/strava/types/stravaApi/core/utils.gen.js +88 -0
  109. package/dist/component/strava/types/stravaApi/core/utils.gen.js.map +1 -0
  110. package/dist/component/strava/types/stravaApi/index.d.ts +3 -0
  111. package/dist/component/strava/types/stravaApi/index.d.ts.map +1 -0
  112. package/dist/component/strava/types/stravaApi/index.js +3 -0
  113. package/dist/component/strava/types/stravaApi/index.js.map +1 -0
  114. package/dist/component/strava/types/stravaApi/sdk.gen.d.ts +224 -0
  115. package/dist/component/strava/types/stravaApi/sdk.gen.d.ts.map +1 -0
  116. package/dist/component/strava/types/stravaApi/sdk.gen.js +361 -0
  117. package/dist/component/strava/types/stravaApi/sdk.gen.js.map +1 -0
  118. package/dist/component/strava/types/stravaApi/types.gen.d.ts +2209 -0
  119. package/dist/component/strava/types/stravaApi/types.gen.d.ts.map +1 -0
  120. package/dist/component/strava/types/stravaApi/types.gen.js +3 -0
  121. package/dist/component/strava/types/stravaApi/types.gen.js.map +1 -0
  122. package/dist/component/strava/types/stravaApi/zod.gen.d.ts +5332 -0
  123. package/dist/component/strava/types/stravaApi/zod.gen.d.ts.map +1 -0
  124. package/dist/component/strava/types/stravaApi/zod.gen.js +1009 -0
  125. package/dist/component/strava/types/stravaApi/zod.gen.js.map +1 -0
  126. package/dist/component/strava/utils.d.ts +15 -0
  127. package/dist/component/strava/utils.d.ts.map +1 -0
  128. package/dist/component/strava/utils.js +36 -0
  129. package/dist/component/strava/utils.js.map +1 -0
  130. package/dist/component/utils.d.ts +5 -0
  131. package/dist/component/utils.d.ts.map +1 -0
  132. package/dist/component/utils.js +11 -0
  133. package/dist/component/utils.js.map +1 -0
  134. package/package.json +131 -130
  135. package/src/client/index.ts +121 -52
  136. package/src/component/_generated/api.ts +18 -0
  137. package/src/component/_generated/component.ts +44 -11
  138. package/src/component/garmin/auth.ts +0 -9
  139. package/src/component/garmin/private.ts +0 -12
  140. package/src/component/garmin/public.ts +8 -1
  141. package/src/component/schema.ts +5 -3
  142. package/src/{strava → component/strava}/auth.ts +143 -185
  143. package/src/component/strava/client.ts +20 -0
  144. package/src/component/strava/private.ts +147 -89
  145. package/src/component/strava/public.ts +268 -110
  146. package/src/{strava → component/strava/transform}/activity.ts +256 -276
  147. package/src/{strava → component/strava/transform}/athlete.ts +41 -47
  148. package/src/{strava/maps/sport-type.ts → component/strava/transform/maps/sportType.ts} +100 -99
  149. package/src/component/strava/types/specs/strava-api.json +4796 -0
  150. package/src/component/strava/types/stravaApi/client/client.gen.ts +290 -0
  151. package/src/component/strava/types/stravaApi/client/index.ts +25 -0
  152. package/src/component/strava/types/stravaApi/client/types.gen.ts +214 -0
  153. package/src/component/strava/types/stravaApi/client/utils.gen.ts +316 -0
  154. package/src/component/strava/types/stravaApi/client.gen.ts +16 -0
  155. package/src/component/strava/types/stravaApi/core/auth.gen.ts +41 -0
  156. package/src/component/strava/types/stravaApi/core/bodySerializer.gen.ts +82 -0
  157. package/src/component/strava/types/stravaApi/core/params.gen.ts +169 -0
  158. package/src/component/strava/types/stravaApi/core/pathSerializer.gen.ts +171 -0
  159. package/src/component/strava/types/stravaApi/core/queryKeySerializer.gen.ts +117 -0
  160. package/src/component/strava/types/stravaApi/core/serverSentEvents.gen.ts +243 -0
  161. package/src/component/strava/types/stravaApi/core/types.gen.ts +104 -0
  162. package/src/component/strava/types/stravaApi/core/utils.gen.ts +140 -0
  163. package/src/component/strava/types/stravaApi/index.ts +4 -0
  164. package/src/component/strava/types/stravaApi/sdk.gen.ts +410 -0
  165. package/src/component/strava/types/stravaApi/types.gen.ts +2435 -0
  166. package/src/component/strava/types/stravaApi/zod.gen.ts +1132 -0
  167. package/src/component/strava/utils.ts +52 -0
  168. package/src/component/utils.ts +11 -0
  169. package/dist/strava/activity.d.ts +0 -121
  170. package/dist/strava/activity.d.ts.map +0 -1
  171. package/dist/strava/activity.js.map +0 -1
  172. package/dist/strava/athlete.d.ts.map +0 -1
  173. package/dist/strava/athlete.js.map +0 -1
  174. package/dist/strava/auth.d.ts.map +0 -1
  175. package/dist/strava/auth.js.map +0 -1
  176. package/dist/strava/client.d.ts +0 -93
  177. package/dist/strava/client.d.ts.map +0 -1
  178. package/dist/strava/client.js +0 -158
  179. package/dist/strava/client.js.map +0 -1
  180. package/dist/strava/index.d.ts +0 -13
  181. package/dist/strava/index.d.ts.map +0 -1
  182. package/dist/strava/index.js +0 -17
  183. package/dist/strava/index.js.map +0 -1
  184. package/dist/strava/maps/sport-type.d.ts +0 -7
  185. package/dist/strava/maps/sport-type.d.ts.map +0 -1
  186. package/dist/strava/maps/sport-type.js.map +0 -1
  187. package/dist/strava/sync.d.ts +0 -104
  188. package/dist/strava/sync.d.ts.map +0 -1
  189. package/dist/strava/sync.js +0 -87
  190. package/dist/strava/sync.js.map +0 -1
  191. package/dist/strava/types.d.ts +0 -266
  192. package/dist/strava/types.d.ts.map +0 -1
  193. package/dist/strava/types.js +0 -8
  194. package/dist/strava/types.js.map +0 -1
  195. package/src/strava/activity.test.ts +0 -415
  196. package/src/strava/athlete.test.ts +0 -139
  197. package/src/strava/auth.test.ts +0 -78
  198. package/src/strava/client.ts +0 -212
  199. package/src/strava/index.ts +0 -54
  200. package/src/strava/maps/sport-type.test.ts +0 -69
  201. package/src/strava/sync.ts +0 -168
  202. package/src/strava/types.ts +0 -361
@@ -1,361 +0,0 @@
1
- // ─── Strava API Response Types ───────────────────────────────────────────────
2
- // TypeScript interfaces representing Strava API v3 data shapes.
3
- // Derived from the Strava OpenAPI spec (strava.json).
4
- //
5
- // These types define the CONTRACT for data coming from the Strava API.
6
- // They are used by transformers, the API client, and OAuth helpers.
7
-
8
- // ─── Athlete ─────────────────────────────────────────────────────────────────
9
-
10
- export interface SummaryAthlete {
11
- id: number;
12
- resource_state: number;
13
- firstname?: string;
14
- lastname?: string;
15
- }
16
-
17
- export interface DetailedAthlete {
18
- id: number;
19
- username: string | null;
20
- resource_state: number;
21
- firstname: string;
22
- lastname: string;
23
- city: string | null;
24
- state: string | null;
25
- country: string | null;
26
- sex: "M" | "F" | null;
27
- premium: boolean;
28
- summit: boolean;
29
- created_at: string; // ISO-8601
30
- updated_at: string; // ISO-8601
31
- badge_type_id: number;
32
- profile_medium: string;
33
- profile: string;
34
- friend: string | null;
35
- follower: string | null;
36
- follower_count: number;
37
- friend_count: number;
38
- mutual_friend_count: number;
39
- athlete_type: number;
40
- date_preference: string;
41
- measurement_preference: string;
42
- ftp: number | null;
43
- weight: number | null;
44
- clubs: SummaryClub[];
45
- bikes: SummaryGear[];
46
- shoes: SummaryGear[];
47
- }
48
-
49
- // ─── Club ────────────────────────────────────────────────────────────────────
50
-
51
- export interface SummaryClub {
52
- id: number;
53
- resource_state: number;
54
- name: string;
55
- profile_medium: string;
56
- sport_type: string;
57
- city: string;
58
- state: string;
59
- country: string;
60
- member_count: number;
61
- featured: boolean;
62
- verified: boolean;
63
- url: string;
64
- }
65
-
66
- // ─── Gear ────────────────────────────────────────────────────────────────────
67
-
68
- export interface SummaryGear {
69
- id: string;
70
- primary: boolean;
71
- name: string;
72
- resource_state: number;
73
- distance: number;
74
- }
75
-
76
- // ─── Map ─────────────────────────────────────────────────────────────────────
77
-
78
- export interface PolylineMap {
79
- id: string;
80
- polyline: string | null;
81
- resource_state: number;
82
- summary_polyline: string | null;
83
- }
84
-
85
- // ─── Activity ────────────────────────────────────────────────────────────────
86
-
87
- export interface SummaryActivity {
88
- resource_state: number;
89
- athlete: SummaryAthlete;
90
- name: string;
91
- distance: number;
92
- moving_time: number;
93
- elapsed_time: number;
94
- total_elevation_gain: number;
95
- type: string;
96
- sport_type: StravaSportType;
97
- workout_type: number | null;
98
- id: number;
99
- external_id: string | null;
100
- upload_id: number | null;
101
- start_date: string; // ISO-8601
102
- start_date_local: string; // ISO-8601
103
- timezone: string;
104
- utc_offset: number;
105
- start_latlng: [number, number] | null;
106
- end_latlng: [number, number] | null;
107
- location_city: string | null;
108
- location_state: string | null;
109
- location_country: string | null;
110
- achievement_count: number;
111
- kudos_count: number;
112
- comment_count: number;
113
- athlete_count: number;
114
- photo_count: number;
115
- map: PolylineMap;
116
- trainer: boolean;
117
- commute: boolean;
118
- manual: boolean;
119
- private: boolean;
120
- flagged: boolean;
121
- gear_id: string | null;
122
- from_accepted_tag: boolean;
123
- average_speed: number;
124
- max_speed: number;
125
- average_cadence?: number;
126
- average_watts?: number;
127
- weighted_average_watts?: number;
128
- kilojoules?: number;
129
- device_watts?: boolean;
130
- has_heartrate: boolean;
131
- average_heartrate?: number;
132
- max_heartrate?: number;
133
- max_watts?: number;
134
- pr_count: number;
135
- total_photo_count: number;
136
- has_kudoed: boolean;
137
- suffer_score?: number | null;
138
- device_name?: string;
139
- }
140
-
141
- export interface DetailedActivity extends SummaryActivity {
142
- description: string | null;
143
- calories: number;
144
- gear: SummaryGear | null;
145
- segment_efforts: SegmentEffort[];
146
- splits_metric: Split[];
147
- splits_standard?: Split[];
148
- laps: Lap[];
149
- best_efforts?: SegmentEffort[];
150
- photos?: ActivityPhotos;
151
- embed_token: string;
152
- average_temp?: number;
153
- elev_high?: number;
154
- elev_low?: number;
155
- hide_from_home?: boolean;
156
- partner_brand_tag: string | null;
157
- highlighted_kudosers?: HighlightedKudoser[];
158
- segment_leaderboard_opt_out?: boolean;
159
- leaderboard_opt_out?: boolean;
160
- }
161
-
162
- // ─── Segment Effort ──────────────────────────────────────────────────────────
163
-
164
- export interface SegmentEffort {
165
- id: number;
166
- resource_state: number;
167
- name: string;
168
- activity: { id: number; resource_state: number };
169
- athlete: SummaryAthlete;
170
- elapsed_time: number;
171
- moving_time: number;
172
- start_date: string;
173
- start_date_local: string;
174
- distance: number;
175
- start_index: number;
176
- end_index: number;
177
- average_cadence?: number;
178
- device_watts?: boolean;
179
- average_watts?: number;
180
- segment: SummarySegment;
181
- kom_rank: number | null;
182
- pr_rank: number | null;
183
- achievements: unknown[];
184
- hidden: boolean;
185
- }
186
-
187
- // ─── Segment ─────────────────────────────────────────────────────────────────
188
-
189
- export interface SummarySegment {
190
- id: number;
191
- resource_state: number;
192
- name: string;
193
- activity_type: string;
194
- distance: number;
195
- average_grade: number;
196
- maximum_grade: number;
197
- elevation_high: number;
198
- elevation_low: number;
199
- start_latlng: [number, number];
200
- end_latlng: [number, number];
201
- climb_category: number;
202
- city: string;
203
- state: string;
204
- country: string;
205
- private: boolean;
206
- hazardous: boolean;
207
- starred: boolean;
208
- }
209
-
210
- // ─── Lap ─────────────────────────────────────────────────────────────────────
211
-
212
- export interface Lap {
213
- id: number;
214
- resource_state: number;
215
- name: string;
216
- activity: { id: number; resource_state: number };
217
- athlete: SummaryAthlete;
218
- elapsed_time: number;
219
- moving_time: number;
220
- start_date: string; // ISO-8601
221
- start_date_local: string;
222
- distance: number;
223
- start_index: number;
224
- end_index: number;
225
- total_elevation_gain: number;
226
- average_speed: number;
227
- max_speed: number;
228
- average_cadence?: number;
229
- device_watts?: boolean;
230
- average_watts?: number;
231
- lap_index: number;
232
- split: number;
233
- average_heartrate?: number;
234
- max_heartrate?: number;
235
- }
236
-
237
- // ─── Split ───────────────────────────────────────────────────────────────────
238
-
239
- export interface Split {
240
- distance: number;
241
- elapsed_time: number;
242
- elevation_difference: number;
243
- moving_time: number;
244
- split: number;
245
- average_speed: number;
246
- pace_zone: number;
247
- average_heartrate?: number;
248
- average_grade_adjusted_speed?: number;
249
- }
250
-
251
- // ─── Streams ─────────────────────────────────────────────────────────────────
252
- // Activity streams are time-series data returned by GET /activities/{id}/streams.
253
-
254
- export interface Stream<T = number> {
255
- type: string;
256
- data: T[];
257
- series_type: string;
258
- original_size: number;
259
- resolution: string;
260
- }
261
-
262
- export interface StreamSet {
263
- time?: Stream<number>;
264
- distance?: Stream<number>;
265
- latlng?: Stream<[number, number]>;
266
- altitude?: Stream<number>;
267
- heartrate?: Stream<number>;
268
- cadence?: Stream<number>;
269
- watts?: Stream<number>;
270
- temp?: Stream<number>;
271
- moving?: Stream<boolean>;
272
- grade_smooth?: Stream<number>;
273
- velocity_smooth?: Stream<number>;
274
- }
275
-
276
- // ─── Photos ──────────────────────────────────────────────────────────────────
277
-
278
- export interface ActivityPhotos {
279
- primary: {
280
- id: number | null;
281
- unique_id: string;
282
- urls: Record<string, string>;
283
- source: number;
284
- } | null;
285
- use_primary_photo: boolean;
286
- count: number;
287
- }
288
-
289
- export interface HighlightedKudoser {
290
- destination_url: string;
291
- display_name: string;
292
- avatar_url: string;
293
- show_name: boolean;
294
- }
295
-
296
- // ─── OAuth ───────────────────────────────────────────────────────────────────
297
-
298
- export interface OAuthTokenResponse {
299
- token_type: string;
300
- expires_at: number; // Unix timestamp
301
- expires_in: number; // seconds
302
- refresh_token: string;
303
- access_token: string;
304
- athlete: DetailedAthlete;
305
- }
306
-
307
- // ─── Sport Type ──────────────────────────────────────────────────────────────
308
- // All known Strava sport_type values from the API spec.
309
-
310
- export type StravaSportType =
311
- | "AlpineSki"
312
- | "BackcountrySki"
313
- | "Badminton"
314
- | "Canoeing"
315
- | "Crossfit"
316
- | "EBikeRide"
317
- | "Elliptical"
318
- | "EMountainBikeRide"
319
- | "Golf"
320
- | "GravelRide"
321
- | "Handcycle"
322
- | "HighIntensityIntervalTraining"
323
- | "Hike"
324
- | "IceSkate"
325
- | "InlineSkate"
326
- | "Kayaking"
327
- | "Kitesurf"
328
- | "MountainBikeRide"
329
- | "NordicSki"
330
- | "Pickleball"
331
- | "Pilates"
332
- | "Racquetball"
333
- | "Ride"
334
- | "RockClimbing"
335
- | "RollerSki"
336
- | "Rowing"
337
- | "Run"
338
- | "Sail"
339
- | "Skateboard"
340
- | "Snowboard"
341
- | "Snowshoe"
342
- | "Soccer"
343
- | "Squash"
344
- | "StairStepper"
345
- | "StandUpPaddling"
346
- | "Surfing"
347
- | "Swim"
348
- | "TableTennis"
349
- | "Tennis"
350
- | "TrailRun"
351
- | "Velomobile"
352
- | "VirtualRide"
353
- | "VirtualRow"
354
- | "VirtualRun"
355
- | "Walk"
356
- | "WeightTraining"
357
- | "Wheelchair"
358
- | "Windsurf"
359
- | "Workout"
360
- | "Yoga"
361
- | (string & {});