@flow-js/garmin-connect 1.6.7 → 1.6.8

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 (33) hide show
  1. package/dist/common/CFClient.d.ts +22 -0
  2. package/dist/common/CFClient.js +137 -0
  3. package/dist/common/CFClient.js.map +1 -0
  4. package/dist/common/DateUtils.d.ts +1 -0
  5. package/dist/common/DateUtils.js +11 -0
  6. package/dist/common/DateUtils.js.map +1 -0
  7. package/dist/garmin/GarminConnect.d.ts +2 -2
  8. package/dist/garmin/GarminConnect.js +12 -4
  9. package/dist/garmin/GarminConnect.js.map +1 -1
  10. package/dist/garmin/Urls.d.ts +56 -0
  11. package/dist/garmin/Urls.js +88 -0
  12. package/dist/garmin/Urls.js.map +1 -0
  13. package/dist/garmin/types/gpx.d.ts +96 -0
  14. package/dist/garmin/types/workout-builder.d.ts +138 -0
  15. package/dist/garmin/types/workout-builder.js +286 -0
  16. package/dist/garmin/types/workout-builder.js.map +1 -0
  17. package/dist/garmin/types.d.ts +504 -0
  18. package/dist/garmin/types.js +3 -0
  19. package/dist/garmin/types.js.map +1 -0
  20. package/dist/garmin/workouts/Running.d.ts +16 -0
  21. package/dist/garmin/workouts/Running.js +64 -0
  22. package/dist/garmin/workouts/Running.js.map +1 -0
  23. package/dist/garmin/workouts/templates/RunningTemplate.d.ts +68 -0
  24. package/dist/garmin/workouts/templates/RunningTemplate.js +78 -0
  25. package/dist/garmin/workouts/templates/RunningTemplate.js.map +1 -0
  26. package/dist/garmin/workouts/workout-builder.d.ts +138 -0
  27. package/dist/garmin/workouts/workout-builder.js +286 -0
  28. package/dist/garmin/workouts/workout-builder.js.map +1 -0
  29. package/dist/garmin/workouts-builder/workout-builder.d.ts +138 -0
  30. package/dist/garmin/workouts-builder/workout-builder.js +286 -0
  31. package/dist/garmin/workouts-builder/workout-builder.js.map +1 -0
  32. package/examples/assets/paris-marathon.gpx +2035 -2035
  33. package/package.json +1 -1
@@ -0,0 +1,504 @@
1
+ export type GCUserProfileId = number;
2
+ export type GCUserHash = string;
3
+ export type GCActivityId = number;
4
+ export type GCWorkoutId = string;
5
+ export interface IUserInfo {
6
+ userProfileId: GCUserProfileId;
7
+ username: string;
8
+ emailAddress: string;
9
+ locale: string;
10
+ measurementSystemKey: string;
11
+ timeFormatKey: string;
12
+ dateFormatKey: string;
13
+ numberFormatKey: string;
14
+ heartRateDisplayFormatKey: string;
15
+ powerDisplayFormatKey: string;
16
+ timeZoneGroupKey: string;
17
+ dayKey: unknown;
18
+ isPublicByDefault: boolean;
19
+ roles: string[];
20
+ displayName: GCUserHash;
21
+ tocAcceptedDate: string;
22
+ defaultActivityPrivacy: unknown;
23
+ customerId: string;
24
+ birthdate: unknown;
25
+ socialNetwork: string;
26
+ socialIcon: string;
27
+ systemUser: boolean;
28
+ systemMetricUser: boolean;
29
+ underAge: boolean;
30
+ }
31
+ export interface ISocialProfile {
32
+ id: number;
33
+ profileId: GCUserProfileId;
34
+ garminGUID: string;
35
+ displayName: GCUserHash;
36
+ fullName: string;
37
+ userName: string;
38
+ profileImageUuid: unknown;
39
+ profileImageUrlLarge: string;
40
+ profileImageUrlMedium: string;
41
+ profileImageUrlSmall: string;
42
+ location: string;
43
+ facebookUrl: unknown;
44
+ twitterUrl: unknown;
45
+ personalWebsite: unknown;
46
+ motivation: unknown;
47
+ bio: unknown;
48
+ primaryActivity: unknown;
49
+ favoriteActivityTypes: unknown[];
50
+ runningTrainingSpeed: number;
51
+ cyclingTrainingSpeed: number;
52
+ favoriteCyclingActivityTypes: unknown[];
53
+ cyclingClassification: unknown;
54
+ cyclingMaxAvgPower: number;
55
+ swimmingTrainingSpeed: number;
56
+ profileVisibility: string;
57
+ activityStartVisibility: string;
58
+ activityMapVisibility: string;
59
+ courseVisibility: string;
60
+ activityHeartRateVisibility: string;
61
+ activityPowerVisibility: string;
62
+ badgeVisibility: string;
63
+ showAge: boolean;
64
+ showWeight: boolean;
65
+ showHeight: boolean;
66
+ showWeightClass: boolean;
67
+ showAgeRange: boolean;
68
+ showGender: boolean;
69
+ showActivityClass: boolean;
70
+ showVO2Max: boolean;
71
+ showPersonalRecords: boolean;
72
+ showLast12Months: boolean;
73
+ showLifetimeTotals: boolean;
74
+ showUpcomingEvents: boolean;
75
+ showRecentFavorites: boolean;
76
+ showRecentDevice: boolean;
77
+ showRecentGear: boolean;
78
+ showBadges: boolean;
79
+ otherActivity: null;
80
+ otherPrimaryActivity: null;
81
+ otherMotivation: null;
82
+ userRoles: string[];
83
+ nameApproved: boolean;
84
+ userProfileFullName: string;
85
+ makeGolfScorecardsPrivate: boolean;
86
+ allowGolfLiveScoring: boolean;
87
+ allowGolfScoringByConnections: boolean;
88
+ userLevel: number;
89
+ userPoint: number;
90
+ levelUpdateDate: string;
91
+ levelIsViewed: boolean;
92
+ levelPointThreshold: number;
93
+ userPointOffset: number;
94
+ userPro: boolean;
95
+ }
96
+ export interface ISocialConnection {
97
+ userId: number;
98
+ displayName: GCUserHash;
99
+ fullName: string;
100
+ location: string;
101
+ profileImageUrlMedium: string;
102
+ profileImageUrlSmall: string;
103
+ userLevel: number;
104
+ connectionRequestId: number;
105
+ connectionRequestorId: number;
106
+ userConnectionStatus: number;
107
+ userRoles: string[];
108
+ profileVisibility: number;
109
+ deviceInvitations: unknown[];
110
+ nameApproved: boolean;
111
+ badgeVisibility: number;
112
+ userPro: boolean;
113
+ }
114
+ export interface ISocialConnections {
115
+ fullName: string;
116
+ userConnections: ISocialConnection[];
117
+ pagination: unknown;
118
+ }
119
+ export interface IActivity {
120
+ activityId: GCActivityId;
121
+ activityName: string;
122
+ description: unknown;
123
+ startTimeLocal: string;
124
+ startTimeGMT: string;
125
+ activityType: {
126
+ typeId: number;
127
+ typeKey: string;
128
+ parentTypeId: number;
129
+ isHidden: boolean;
130
+ sortOrder: unknown;
131
+ trimmable: boolean;
132
+ restricted: boolean;
133
+ };
134
+ eventType: {
135
+ typeId: number;
136
+ typeKey: string;
137
+ sortOrder: number;
138
+ };
139
+ comments: unknown;
140
+ parentId: unknown;
141
+ distance: number;
142
+ duration: number;
143
+ elapsedDuration: number;
144
+ movingDuration: number;
145
+ elevationGain: number;
146
+ elevationLoss: number;
147
+ averageSpeed: number;
148
+ maxSpeed: number;
149
+ startLatitude: number;
150
+ startLongitude: number;
151
+ hasPolyline: boolean;
152
+ ownerId: number;
153
+ ownerDisplayName: string;
154
+ ownerFullName: string;
155
+ ownerProfileImageUrlSmall: string;
156
+ ownerProfileImageUrlMedium: string;
157
+ ownerProfileImageUrlLarge: string;
158
+ calories: number;
159
+ averageHR: number;
160
+ maxHR: number;
161
+ averageRunningCadenceInStepsPerMinute: number;
162
+ maxRunningCadenceInStepsPerMinute: number;
163
+ averageBikingCadenceInRevPerMinute: unknown;
164
+ maxBikingCadenceInRevPerMinute: unknown;
165
+ averageSwimCadenceInStrokesPerMinute: unknown;
166
+ maxSwimCadenceInStrokesPerMinute: unknown;
167
+ averageSwolf: unknown;
168
+ activeLengths: unknown;
169
+ steps: number;
170
+ conversationUuid: unknown;
171
+ conversationPk: unknown;
172
+ numberOfActivityLikes: unknown;
173
+ numberOfActivityComments: unknown;
174
+ likedByUser: unknown;
175
+ commentedByUser: unknown;
176
+ activityLikeDisplayNames: unknown;
177
+ activityLikeFullNames: unknown;
178
+ activityLikeProfileImageUrls: unknown;
179
+ requestorRelationship: unknown;
180
+ userRoles: string[];
181
+ privacy: {
182
+ typeId: number;
183
+ typeKey: string;
184
+ };
185
+ userPro: boolean;
186
+ courseId: unknown;
187
+ poolLength: unknown;
188
+ unitOfPoolLength: unknown;
189
+ hasVideo: boolean;
190
+ videoUrl: unknown;
191
+ timeZoneId: number;
192
+ beginTimestamp: number;
193
+ sportTypeId: number;
194
+ avgPower: unknown;
195
+ maxPower: unknown;
196
+ aerobicTrainingEffect: unknown;
197
+ anaerobicTrainingEffect: unknown;
198
+ strokes: unknown;
199
+ normPower: unknown;
200
+ leftBalance: unknown;
201
+ rightBalance: unknown;
202
+ avgLeftBalance: unknown;
203
+ max20MinPower: unknown;
204
+ avgVerticalOscillation: unknown;
205
+ avgGroundContactTime: unknown;
206
+ avgStrideLength: number;
207
+ avgFractionalCadence: unknown;
208
+ maxFractionalCadence: unknown;
209
+ trainingStressScore: unknown;
210
+ intensityFactor: unknown;
211
+ vO2MaxValue: number;
212
+ avgVerticalRatio: unknown;
213
+ avgGroundContactBalance: unknown;
214
+ lactateThresholdBpm: unknown;
215
+ lactateThresholdSpeed: unknown;
216
+ maxFtp: unknown;
217
+ avgStrokeDistance: unknown;
218
+ avgStrokeCadence: unknown;
219
+ maxStrokeCadence: unknown;
220
+ workoutId: unknown;
221
+ avgStrokes: unknown;
222
+ minStrokes: unknown;
223
+ deviceId: number;
224
+ minTemperature: unknown;
225
+ maxTemperature: unknown;
226
+ minElevation: number;
227
+ maxElevation: number;
228
+ avgDoubleCadence: unknown;
229
+ maxDoubleCadence: number;
230
+ summarizedExerciseSets: unknown;
231
+ maxDepth: unknown;
232
+ avgDepth: unknown;
233
+ surfaceInterval: unknown;
234
+ startN2: unknown;
235
+ endN2: unknown;
236
+ startCns: unknown;
237
+ endCns: unknown;
238
+ summarizedDiveInfo: {
239
+ weight: unknown;
240
+ weightUnit: unknown;
241
+ visibility: unknown;
242
+ visibilityUnit: unknown;
243
+ surfaceCondition: unknown;
244
+ current: unknown;
245
+ waterType: unknown;
246
+ waterDensity: unknown;
247
+ summarizedDiveGases: [];
248
+ totalSurfaceTime: unknown;
249
+ };
250
+ activityLikeAuthors: unknown;
251
+ avgVerticalSpeed: unknown;
252
+ maxVerticalSpeed: number;
253
+ floorsClimbed: unknown;
254
+ floorsDescended: unknown;
255
+ manufacturer: string;
256
+ diveNumber: unknown;
257
+ locationName: string;
258
+ bottomTime: unknown;
259
+ lapCount: number;
260
+ endLatitude: number;
261
+ endLongitude: number;
262
+ minAirSpeed: unknown;
263
+ maxAirSpeed: unknown;
264
+ avgAirSpeed: unknown;
265
+ avgWindYawAngle: unknown;
266
+ minCda: unknown;
267
+ maxCda: unknown;
268
+ avgCda: unknown;
269
+ avgWattsPerCda: unknown;
270
+ flow: unknown;
271
+ grit: unknown;
272
+ jumpCount: unknown;
273
+ caloriesEstimated: unknown;
274
+ caloriesConsumed: unknown;
275
+ waterEstimated: unknown;
276
+ waterConsumed: unknown;
277
+ maxAvgPower_1: unknown;
278
+ maxAvgPower_2: unknown;
279
+ maxAvgPower_5: unknown;
280
+ maxAvgPower_10: unknown;
281
+ maxAvgPower_20: unknown;
282
+ maxAvgPower_30: unknown;
283
+ maxAvgPower_60: unknown;
284
+ maxAvgPower_120: unknown;
285
+ maxAvgPower_300: unknown;
286
+ maxAvgPower_600: unknown;
287
+ maxAvgPower_1200: unknown;
288
+ maxAvgPower_1800: unknown;
289
+ maxAvgPower_3600: unknown;
290
+ maxAvgPower_7200: unknown;
291
+ maxAvgPower_18000: unknown;
292
+ excludeFromPowerCurveReports: unknown;
293
+ totalSets: unknown;
294
+ activeSets: unknown;
295
+ totalReps: unknown;
296
+ minRespirationRate: unknown;
297
+ maxRespirationRate: unknown;
298
+ avgRespirationRate: unknown;
299
+ trainingEffectLabel: unknown;
300
+ activityTrainingLoad: unknown;
301
+ avgFlow: unknown;
302
+ avgGrit: unknown;
303
+ minActivityLapDuration: number;
304
+ avgStress: unknown;
305
+ startStress: unknown;
306
+ endStress: unknown;
307
+ differenceStress: unknown;
308
+ maxStress: unknown;
309
+ aerobicTrainingEffectMessage: unknown;
310
+ anaerobicTrainingEffectMessage: unknown;
311
+ splitSummaries: [];
312
+ hasSplits: boolean;
313
+ maxBottomTime: unknown;
314
+ hasSeedFirstbeatProfile: unknown;
315
+ calendarEventId: unknown;
316
+ calendarEventUuid: unknown;
317
+ avgGradeAdjustedSpeed: unknown;
318
+ avgWheelchairCadence: unknown;
319
+ maxWheelchairCadence: unknown;
320
+ purposeful: boolean;
321
+ manualActivity: boolean;
322
+ autoCalcCalories: boolean;
323
+ elevationCorrected: boolean;
324
+ atpActivity: boolean;
325
+ favorite: boolean;
326
+ decoDive: unknown;
327
+ pr: boolean;
328
+ parent: boolean;
329
+ }
330
+ export interface IActivityDetails {
331
+ activityId: number;
332
+ activityUUID: {
333
+ uuid: string;
334
+ };
335
+ activityName: string;
336
+ userProfileId: number;
337
+ isMultiSportParent: boolean;
338
+ activityTypeDTO: {
339
+ typeId: number;
340
+ typeKey: string;
341
+ parentTypeId: number;
342
+ isHidden: boolean;
343
+ restricted: boolean;
344
+ trimmable: boolean;
345
+ };
346
+ eventTypeDTO: {
347
+ typeId: number;
348
+ typeKey: string;
349
+ sortOrder: number;
350
+ };
351
+ accessControlRuleDTO: {
352
+ typeId: number;
353
+ typeKey: string;
354
+ };
355
+ timeZoneUnitDTO: {
356
+ unitId: number;
357
+ unitKey: string;
358
+ factor: number;
359
+ timeZone: string;
360
+ };
361
+ metadataDTO: {
362
+ isOriginal: boolean;
363
+ deviceApplicationInstallationId: number;
364
+ agentApplicationInstallationId?: null;
365
+ agentString?: null;
366
+ fileFormat: {
367
+ formatId: number;
368
+ formatKey: string;
369
+ };
370
+ associatedCourseId?: null;
371
+ lastUpdateDate: string;
372
+ uploadedDate: string;
373
+ videoUrl?: null;
374
+ hasPolyline: boolean;
375
+ hasChartData: boolean;
376
+ hasHrTimeInZones: boolean;
377
+ hasPowerTimeInZones: boolean;
378
+ userInfoDto: {
379
+ userProfilePk: number;
380
+ displayname: string;
381
+ fullname: string;
382
+ profileImageUrlLarge?: null;
383
+ profileImageUrlMedium: string;
384
+ profileImageUrlSmall: string;
385
+ userPro: boolean;
386
+ };
387
+ childIds?: null[] | null;
388
+ childActivityTypes?: null[] | null;
389
+ sensors?: {
390
+ manufacturer: string;
391
+ serialNumber: number;
392
+ sku: string;
393
+ fitProductNumber: number;
394
+ sourceType: string;
395
+ antplusDeviceType: string;
396
+ softwareVersion: number;
397
+ batteryStatus: string;
398
+ }[] | null;
399
+ activityImages?: {
400
+ imageId: string;
401
+ url: string;
402
+ smallUrl: string;
403
+ mediumUrl: string;
404
+ expirationTimestamp?: null;
405
+ latitude?: null;
406
+ longitude?: null;
407
+ photoDate?: null;
408
+ }[] | null;
409
+ manufacturer: string;
410
+ diveNumber?: null;
411
+ lapCount: number;
412
+ associatedWorkoutId: number;
413
+ isAtpActivity?: null;
414
+ deviceMetaDataDTO: {
415
+ deviceId: string;
416
+ deviceTypePk: number;
417
+ deviceVersionPk: number;
418
+ };
419
+ hasIntensityIntervals: boolean;
420
+ hasSplits: boolean;
421
+ eBikeMaxAssistModes?: null;
422
+ eBikeBatteryUsage?: null;
423
+ eBikeBatteryRemaining?: null;
424
+ eBikeAssistModeInfoDTOList?: null;
425
+ calendarEventInfo?: null;
426
+ personalRecord: boolean;
427
+ gcj02: boolean;
428
+ runPowerWindDataEnabled?: null;
429
+ autoCalcCalories: boolean;
430
+ favorite: boolean;
431
+ manualActivity: boolean;
432
+ trimmed: boolean;
433
+ elevationCorrected: boolean;
434
+ };
435
+ summaryDTO: {
436
+ startTimeLocal: string;
437
+ startTimeGMT: string;
438
+ startLatitude: number;
439
+ startLongitude: number;
440
+ distance: number;
441
+ duration: number;
442
+ movingDuration: number;
443
+ elapsedDuration: number;
444
+ elevationGain: number;
445
+ elevationLoss: number;
446
+ maxElevation: number;
447
+ minElevation: number;
448
+ averageSpeed: number;
449
+ averageMovingSpeed: number;
450
+ maxSpeed: number;
451
+ calories: number;
452
+ averageHR: number;
453
+ maxHR: number;
454
+ averageRunCadence: number;
455
+ maxRunCadence: number;
456
+ averageTemperature: number;
457
+ maxTemperature: number;
458
+ minTemperature: number;
459
+ groundContactTime: number;
460
+ groundContactBalanceLeft: number;
461
+ strideLength: number;
462
+ verticalOscillation: number;
463
+ trainingEffect: number;
464
+ anaerobicTrainingEffect: number;
465
+ aerobicTrainingEffectMessage: string;
466
+ anaerobicTrainingEffectMessage: string;
467
+ verticalRatio: number;
468
+ endLatitude: number;
469
+ endLongitude: number;
470
+ maxVerticalSpeed: number;
471
+ minActivityLapDuration: number;
472
+ };
473
+ locationName: string;
474
+ splitSummaries?: {
475
+ distance: number;
476
+ duration: number;
477
+ movingDuration: number;
478
+ elapsedDuration: number;
479
+ elevationGain: number;
480
+ elevationLoss: number;
481
+ averageSpeed: number;
482
+ averageMovingSpeed: number;
483
+ maxSpeed: number;
484
+ calories: number;
485
+ averageHR: number;
486
+ maxHR: number;
487
+ averageRunCadence: number;
488
+ maxRunCadence: number;
489
+ averageTemperature: number;
490
+ maxTemperature: number;
491
+ minTemperature: number;
492
+ groundContactTime: number;
493
+ groundContactBalanceLeft: number;
494
+ strideLength: number;
495
+ verticalOscillation: number;
496
+ verticalRatio: number;
497
+ totalExerciseReps: number;
498
+ splitType: string;
499
+ noOfSplits: number;
500
+ maxElevationGain: number;
501
+ averageElevationGain: number;
502
+ maxDistance: number;
503
+ }[] | null;
504
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/garmin/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { IRunningWorkout } from './templates/RunningTemplate';
2
+ export default class Running {
3
+ private data;
4
+ constructor();
5
+ get name(): string;
6
+ set name(name: string);
7
+ get distance(): number;
8
+ set distance(meters: number);
9
+ get workoutId(): string | undefined;
10
+ set workoutId(workoutId: string | undefined);
11
+ get description(): string | undefined;
12
+ set description(description: string | undefined);
13
+ isValid(): boolean;
14
+ toJson(): IRunningWorkout;
15
+ toString(): string;
16
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var RunningTemplate_1 = __importDefault(require("./templates/RunningTemplate"));
7
+ var Running = /** @class */ (function () {
8
+ function Running() {
9
+ this.data = (0, RunningTemplate_1.default)();
10
+ }
11
+ Object.defineProperty(Running.prototype, "name", {
12
+ get: function () {
13
+ return this.data.workoutName;
14
+ },
15
+ set: function (name) {
16
+ this.data.workoutName = "".concat(name);
17
+ },
18
+ enumerable: false,
19
+ configurable: true
20
+ });
21
+ Object.defineProperty(Running.prototype, "distance", {
22
+ get: function () {
23
+ return (this.data.workoutSegments[0].workoutSteps[0].endConditionValue || 0);
24
+ },
25
+ set: function (meters) {
26
+ this.data.workoutSegments[0].workoutSteps[0].endConditionValue =
27
+ Math.round(meters);
28
+ },
29
+ enumerable: false,
30
+ configurable: true
31
+ });
32
+ Object.defineProperty(Running.prototype, "workoutId", {
33
+ get: function () {
34
+ return this.data.workoutId;
35
+ },
36
+ set: function (workoutId) {
37
+ this.data.workoutId = workoutId;
38
+ },
39
+ enumerable: false,
40
+ configurable: true
41
+ });
42
+ Object.defineProperty(Running.prototype, "description", {
43
+ get: function () {
44
+ return this.data.description;
45
+ },
46
+ set: function (description) {
47
+ this.data.description = description;
48
+ },
49
+ enumerable: false,
50
+ configurable: true
51
+ });
52
+ Running.prototype.isValid = function () {
53
+ return !!(this.name && this.distance);
54
+ };
55
+ Running.prototype.toJson = function () {
56
+ return this.data;
57
+ };
58
+ Running.prototype.toString = function () {
59
+ return "".concat(this.name, ", ").concat((this.distance / 1000).toFixed(2), "km");
60
+ };
61
+ return Running;
62
+ }());
63
+ exports.default = Running;
64
+ //# sourceMappingURL=Running.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Running.js","sourceRoot":"","sources":["../../../src/garmin/workouts/Running.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwE;AAExE;IAEI;QACI,IAAI,CAAC,IAAI,GAAG,IAAA,yBAAQ,GAAE,CAAC;IAC3B,CAAC;IAED,sBAAI,yBAAI;aAAR;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACjC,CAAC;aAED,UAAS,IAAI;YACT,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,UAAG,IAAI,CAAE,CAAC;QACtC,CAAC;;;OAJA;IAMD,sBAAI,6BAAQ;aAAZ;YACI,OAAO,CACH,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CACtE,CAAC;QACN,CAAC;aAED,UAAa,MAAc;YACvB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;;;OALA;IAOD,sBAAI,8BAAS;aAAb;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/B,CAAC;aAED,UAAc,SAAS;YACnB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACpC,CAAC;;;OAJA;IAMD,sBAAI,gCAAW;aAAf;YACI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACjC,CAAC;aAED,UAAgB,WAAW;YACvB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QACxC,CAAC;;;OAJA;IAMD,yBAAO,GAAP;QACI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,wBAAM,GAAN;QACI,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,0BAAQ,GAAR;QACI,OAAO,UAAG,IAAI,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAI,CAAC;IAClE,CAAC;IACL,cAAC;AAAD,CAAC,AApDD,IAoDC"}
@@ -0,0 +1,68 @@
1
+ export interface ISportType {
2
+ sportTypeId: number;
3
+ sportTypeKey: SportTypeKey;
4
+ }
5
+ declare enum SportTypeKey {
6
+ running = "running"
7
+ }
8
+ export interface IRunningWorkout {
9
+ workoutId: string | undefined;
10
+ description: string | undefined;
11
+ sportType: ISportType;
12
+ workoutName: string;
13
+ workoutSegments: IWorkoutSegment[];
14
+ }
15
+ export interface IWorkoutSegment {
16
+ segmentOrder: number;
17
+ sportType: ISportType;
18
+ workoutSteps: IWorkoutStep[];
19
+ }
20
+ export interface IWorkoutStep {
21
+ type: WorkoutStepType;
22
+ stepId: unknown;
23
+ stepOrder: number;
24
+ childStepId: unknown;
25
+ description: string | null;
26
+ stepType: IStepType;
27
+ endCondition: IEndCondition;
28
+ preferredEndConditionUnit: IPreferredEndConditionUnit;
29
+ endConditionValue: number | null;
30
+ endConditionCompare: null;
31
+ endConditionZone: null;
32
+ targetType: ITargetType;
33
+ targetValueOne: null;
34
+ targetValueTwo: null;
35
+ zoneNumber: null;
36
+ }
37
+ declare enum WorkoutStepType {
38
+ executableStepDTO = "ExecutableStepDTO"
39
+ }
40
+ export interface IStepType {
41
+ stepTypeId: number;
42
+ stepTypeKey: StepTypeKey;
43
+ }
44
+ declare enum StepTypeKey {
45
+ interval = "interval"
46
+ }
47
+ export interface IEndCondition {
48
+ conditionTypeKey: ConditionTypeKey;
49
+ conditionTypeId: number;
50
+ }
51
+ declare enum ConditionTypeKey {
52
+ distance = "distance"
53
+ }
54
+ export interface IPreferredEndConditionUnit {
55
+ unitKey: UnitKey;
56
+ }
57
+ declare enum UnitKey {
58
+ kilometer = "kilometer"
59
+ }
60
+ export interface ITargetType {
61
+ workoutTargetTypeId: number;
62
+ workoutTargetTypeKey: WorkoutTargetTypeKey;
63
+ }
64
+ declare enum WorkoutTargetTypeKey {
65
+ noTarget = "no.target"
66
+ }
67
+ export default function (): IRunningWorkout;
68
+ export {};