trackswap 0.0.26 → 0.2.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 (70) hide show
  1. package/README.md +124 -431
  2. package/dist/FIT/base.d.ts +61 -0
  3. package/dist/FIT/course-plan.d.ts +3 -0
  4. package/dist/FIT/crc.d.ts +1 -0
  5. package/dist/FIT/decoder.d.ts +33 -0
  6. package/dist/FIT/encoder.d.ts +45 -0
  7. package/dist/FIT/encoderCourse.d.ts +37 -0
  8. package/dist/FIT/encoderWorkout.d.ts +41 -0
  9. package/dist/FIT/health.d.ts +121 -0
  10. package/dist/FIT/index.d.ts +15 -0
  11. package/dist/FIT/mesg.d.ts +37 -0
  12. package/dist/FIT/middleware.d.ts +33 -0
  13. package/dist/FIT/plugins.d.ts +17 -0
  14. package/dist/FIT/processor.d.ts +34 -0
  15. package/dist/FIT/types/checksum_type.d.ts +4 -0
  16. package/dist/FIT/types/course_point.d.ts +56 -0
  17. package/dist/FIT/types/date_time_type.d.ts +3 -0
  18. package/dist/FIT/types/event.d.ts +49 -0
  19. package/dist/FIT/types/event_type.d.ts +18 -0
  20. package/dist/FIT/types/file.d.ts +23 -0
  21. package/dist/FIT/types/file_flags_type.d.ts +5 -0
  22. package/dist/FIT/types/index.d.ts +119 -0
  23. package/dist/FIT/types/local_date_time_type.d.ts +3 -0
  24. package/dist/FIT/types/mesg_count_type.d.ts +5 -0
  25. package/dist/FIT/types/mesg_num.d.ts +125 -0
  26. package/dist/FIT/types/message_index_type.d.ts +4558 -0
  27. package/dist/FIT/types/sport.d.ts +47 -0
  28. package/dist/FIT/types.d.ts +516 -0
  29. package/dist/FIT/util.d.ts +1 -0
  30. package/dist/GPX/base.d.ts +16 -0
  31. package/dist/GPX/converters.d.ts +62 -0
  32. package/dist/GPX/decoder.d.ts +43 -0
  33. package/dist/GPX/encoder.d.ts +45 -0
  34. package/dist/GPX/extensions/index.d.ts +14 -0
  35. package/dist/GPX/index.d.ts +13 -0
  36. package/dist/GPX/middleware.d.ts +18 -0
  37. package/dist/GPX/processor.d.ts +30 -0
  38. package/dist/GPX/types.d.ts +124 -0
  39. package/dist/GPX/util.d.ts +1 -0
  40. package/dist/TCX/base.d.ts +19 -0
  41. package/dist/TCX/converters.d.ts +52 -0
  42. package/dist/TCX/decoder.d.ts +33 -0
  43. package/dist/TCX/encoder.d.ts +46 -0
  44. package/dist/TCX/index.d.ts +7 -0
  45. package/dist/TCX/middleware.d.ts +25 -0
  46. package/dist/TCX/processor.d.ts +39 -0
  47. package/dist/TCX/types.d.ts +192 -0
  48. package/dist/TrackSwap.d.ts +16 -0
  49. package/dist/activity/base.d.ts +62 -0
  50. package/dist/activity/converters.d.ts +40 -0
  51. package/dist/activity/encoders.d.ts +36 -0
  52. package/dist/activity/index.d.ts +17 -0
  53. package/dist/activity/metrics/MetricsCalculator.d.ts +18 -0
  54. package/dist/activity/metrics/index.d.ts +1 -0
  55. package/dist/activity/processor.d.ts +19 -0
  56. package/dist/core/base.d.ts +73 -0
  57. package/dist/core/builtin-adapters.d.ts +52 -0
  58. package/dist/core/format-adapter.d.ts +23 -0
  59. package/dist/core/format-registry.d.ts +9 -0
  60. package/dist/core/index.d.ts +2 -0
  61. package/dist/core/xml-utils.d.ts +17 -0
  62. package/dist/document.d.ts +57 -0
  63. package/dist/errors.d.ts +12 -0
  64. package/dist/fit-debug.d.ts +3 -0
  65. package/dist/index.cjs +29 -26
  66. package/dist/index.d.ts +9 -0
  67. package/dist/index.js +20 -17
  68. package/dist/types.d.ts +76 -0
  69. package/dist/util.d.ts +25 -0
  70. package/package.json +15 -6
@@ -0,0 +1,47 @@
1
+ export declare enum Activity {
2
+ GENERIC = 0,
3
+ RUNNING = 1,
4
+ CYCLING = 2,
5
+ TRANSITION = 3,
6
+ FITNESS_EQUIPMENT = 4,
7
+ SWIMMING = 5,
8
+ BASKETBALL = 6,
9
+ SOCCER = 7,
10
+ TENNIS = 8,
11
+ AMERICAN_FOOTBALL = 9,
12
+ TRAINING = 10,
13
+ WALKING = 11,
14
+ CROSS_COUNTRY_SKIING = 12,
15
+ ALPINE_SKIING = 13,
16
+ SNOWBOARDING = 14,
17
+ ROWING = 15,
18
+ MOUNTAINEERING = 16,
19
+ HIKING = 17,
20
+ MULTISPORT = 18,
21
+ PADDLING = 19,
22
+ FLYING = 20,
23
+ E_BIKING = 21,
24
+ MOTORCYCLING = 22,
25
+ BOATING = 23,
26
+ DRIVING = 24,
27
+ GOLF = 25,
28
+ HANG_GLIDING = 26,
29
+ HORSEBACK_RIDING = 27,
30
+ HUNTING = 28,
31
+ FISHING = 29,
32
+ INLINE_SKATING = 30,
33
+ ROCK_CLIMBING = 31,
34
+ SAILING = 32,
35
+ ICE_SKATING = 33,
36
+ SKY_DIVING = 34,
37
+ SNOWSHOEING = 35,
38
+ SNOWMOBILING = 36,
39
+ STAND_UP_PADDLEBOARDING = 37,
40
+ SURFING = 38,
41
+ WAKEBOARDING = 39,
42
+ WATER_SKIING = 40,
43
+ YOGA = 41,
44
+ PILATES = 42,
45
+ CALISTHENICS = 43,
46
+ ALL = 254
47
+ }
@@ -0,0 +1,516 @@
1
+ import { IProcessingContext } from "../core/base.js";
2
+ export interface FITFileType {
3
+ fileIdMesgs?: FileIdMesgType[];
4
+ fileCreatorMesgs?: FileCreatorMesgType[];
5
+ eventMesgs?: EventMesgType[];
6
+ deviceInfoMesgs?: DeviceInfoMesgType[];
7
+ deviceSettingsMesgs?: DeviceSettingsMesgType[];
8
+ userProfileMesgs?: UserProfileMesgType[];
9
+ sessionMesgs?: SessionMesgType[];
10
+ courseMesgs?: any[];
11
+ healthDocument?: import("./health.js").HealthDocumentV1;
12
+ fitDocumentMetadata?: {
13
+ detectedKinds: import("./health.js").FITPrimaryKind[];
14
+ messageCounts: Record<string, number>;
15
+ };
16
+ }
17
+ export type FITDecoderMesgs = {
18
+ fileIdMesgs?: FileIdMesgType[];
19
+ fileCreatorMesgs?: FileCreatorMesgType[];
20
+ eventMesgs?: EventMesgType[];
21
+ deviceInfoMesgs?: DeviceInfoMesgType[];
22
+ deviceSettingsMesgs?: DeviceSettingsMesgType[];
23
+ userProfileMesgs?: UserProfileMesgType[];
24
+ sessionMesgs?: Omit<SessionMesgType, "lapMesgs">[];
25
+ lapMesgs?: Omit<LapMesgType, "recordMesgs">[];
26
+ recordMesgs?: RecordMesgType[];
27
+ lengthMesgs?: LengthMesgType[];
28
+ courseMesgs?: any[];
29
+ [key: string]: any[] | undefined;
30
+ };
31
+ export interface FileIdMesgType {
32
+ serialNumber?: number;
33
+ timeCreated?: string;
34
+ manufacturer?: string;
35
+ product?: number;
36
+ type?: string;
37
+ garminProduct?: string;
38
+ }
39
+ export interface FileCreatorMesgType {
40
+ softwareVersion?: number;
41
+ }
42
+ export interface EventMesgType {
43
+ timestamp?: Date;
44
+ data?: number;
45
+ event?: string;
46
+ eventType?: string;
47
+ eventGroup?: number;
48
+ timerTrigger?: string;
49
+ }
50
+ export interface DeviceInfoMesgType {
51
+ timestamp?: string;
52
+ serialNumber?: number;
53
+ manufacturer?: string;
54
+ product?: number;
55
+ softwareVersion?: number;
56
+ deviceIndex?: string;
57
+ deviceType?: number;
58
+ garminProduct?: string;
59
+ }
60
+ export interface DeviceSettingsMesgType {
61
+ utcOffset?: number;
62
+ timeOffset?: number;
63
+ activeTimeZone?: number;
64
+ timeMode?: string;
65
+ timeZoneOffset?: number;
66
+ backlightMode?: string;
67
+ }
68
+ export interface UserProfileMesgType {
69
+ friendlyName?: string;
70
+ weight?: number;
71
+ gender?: string;
72
+ age?: number;
73
+ height?: number;
74
+ language?: string;
75
+ elevSetting?: string;
76
+ weightSetting?: string;
77
+ defaultMaxBikingHeartRate?: number;
78
+ defaultMaxHeartRate?: number;
79
+ hrSetting?: string;
80
+ speedSetting?: string;
81
+ distSetting?: string;
82
+ powerSetting?: string;
83
+ activityClass?: number;
84
+ positionSetting?: string;
85
+ temperatureSetting?: string;
86
+ }
87
+ export interface SessionMesgType {
88
+ messageIndex?: number;
89
+ timestamp: Date;
90
+ event: string;
91
+ eventType: string;
92
+ startTime: Date;
93
+ startPositionLat?: number;
94
+ startPositionLong?: number;
95
+ sport?: string;
96
+ subSport?: string;
97
+ totalElapsedTime?: number;
98
+ totalTimerTime?: number;
99
+ totalDistance?: number;
100
+ totalCycles?: number;
101
+ totalStrides?: number;
102
+ totalStrokes?: number;
103
+ totalCalories?: number;
104
+ totalFatCalories?: number;
105
+ avgSpeed?: number;
106
+ enhancedAvgSpeed?: number;
107
+ maxSpeed?: number;
108
+ enhancedMaxSpeed?: number;
109
+ avgHeartRate?: number;
110
+ maxHeartRate?: number;
111
+ avgCadence?: number;
112
+ avgRunningCadence?: number;
113
+ maxCadence?: number;
114
+ maxRunningCadence?: number;
115
+ avgPower?: number;
116
+ maxPower?: number;
117
+ totalAscent?: number;
118
+ totalDescent?: number;
119
+ totalTrainingEffect?: number;
120
+ firstLapIndex?: number;
121
+ numLaps?: number;
122
+ eventGroup?: number;
123
+ trigger?: string;
124
+ necLat?: number;
125
+ necLong?: number;
126
+ swcLat?: number;
127
+ swcLong?: number;
128
+ numLengths?: number;
129
+ normalizedPower?: number;
130
+ trainingStressScore?: number;
131
+ intensityFactor?: number;
132
+ leftRightBalance?: number;
133
+ endPositionLat?: number;
134
+ endPositionLong?: number;
135
+ avgStrokeCount?: number;
136
+ avgStrokeDistance?: number;
137
+ swimStroke?: string;
138
+ poolLength?: number;
139
+ thresholdPower?: number;
140
+ poolLengthUnit?: string;
141
+ numActiveLengths?: number;
142
+ totalWork?: number;
143
+ avgAltitude?: number;
144
+ enhancedAvgAltitude?: number;
145
+ maxAltitude?: number;
146
+ enhancedMaxAltitude?: number;
147
+ gpsAccuracy?: number;
148
+ avgGrade?: number;
149
+ avgPosGrade?: number;
150
+ avgNegGrade?: number;
151
+ maxPosGrade?: number;
152
+ maxNegGrade?: number;
153
+ avgTemperature?: number;
154
+ maxTemperature?: number;
155
+ minTemperature?: number;
156
+ totalMovingTime?: number;
157
+ avgPosVerticalSpeed?: number;
158
+ avgNegVerticalSpeed?: number;
159
+ maxPosVerticalSpeed?: number;
160
+ maxNegVerticalSpeed?: number;
161
+ minHeartRate?: number;
162
+ timeInHrZone?: number[];
163
+ timeInSpeedZone?: number[];
164
+ timeInCadenceZone?: number[];
165
+ timeInPowerZone?: number[];
166
+ avgLapTime?: number;
167
+ bestLapIndex?: number;
168
+ minAltitude?: number;
169
+ enhancedMinAltitude?: number;
170
+ playerScore?: number;
171
+ opponentScore?: number;
172
+ opponentName?: string;
173
+ strokeCount?: number[];
174
+ zoneCount?: number[];
175
+ maxBallSpeed?: number;
176
+ avgBallSpeed?: number;
177
+ avgVerticalOscillation?: number;
178
+ avgStanceTimePercent?: number;
179
+ avgStanceTime?: number;
180
+ avgFractionalCadence?: number;
181
+ maxFractionalCadence?: number;
182
+ totalFractionalCycles?: number;
183
+ avgTotalHemoglobinConc?: number;
184
+ minTotalHemoglobinConc?: number;
185
+ maxTotalHemoglobinConc?: number;
186
+ avgSaturatedHemoglobinPercent?: number;
187
+ minSaturatedHemoglobinPercent?: number;
188
+ maxSaturatedHemoglobinPercent?: number;
189
+ avgLeftTorqueEffectiveness?: number;
190
+ avgRightTorqueEffectiveness?: number;
191
+ avgLeftPedalSmoothness?: number;
192
+ avgRightPedalSmoothness?: number;
193
+ avgCombinedPedalSmoothness?: number;
194
+ sportProfileName?: string;
195
+ sportIndex?: number;
196
+ timeStanding?: number;
197
+ standCount?: number;
198
+ avgLeftPco?: number;
199
+ avgRightPco?: number;
200
+ avgLeftPowerPhase?: number[];
201
+ avgLeftPowerPhasePeak?: number[];
202
+ avgRightPowerPhase?: number[];
203
+ avgRightPowerPhasePeak?: number[];
204
+ avgPowerPosition?: number[];
205
+ maxPowerPosition?: number[];
206
+ avgCadencePosition?: number[];
207
+ maxCadencePosition?: number[];
208
+ avgLevMotorPower?: number;
209
+ maxLevMotorPower?: number;
210
+ levBatteryConsumption?: number;
211
+ avgVerticalRatio?: number;
212
+ avgStanceTimeBalance?: number;
213
+ avgStepLength?: number;
214
+ totalAnaerobicTrainingEffect?: number;
215
+ avgVam?: number;
216
+ avgDepth?: number;
217
+ maxDepth?: number;
218
+ surfaceInterval?: number;
219
+ startCns?: number;
220
+ endCns?: number;
221
+ startN2?: number;
222
+ endN2?: number;
223
+ avgRespirationRate?: number;
224
+ maxRespirationRate?: number;
225
+ minRespirationRate?: number;
226
+ enhancedAvgRespirationRate?: number;
227
+ enhancedMaxRespirationRate?: number;
228
+ enhancedMinRespirationRate?: number;
229
+ o2Toxicity?: number;
230
+ diveNumber?: number;
231
+ trainingLoadPeak?: number;
232
+ totalGrit?: number;
233
+ totalFlow?: number;
234
+ jumpCount?: number;
235
+ avgGrit?: number;
236
+ avgFlow?: number;
237
+ workoutFeel?: number;
238
+ workoutRpe?: number;
239
+ avgSpo2?: number;
240
+ avgStress?: number;
241
+ sdrrHrv?: number;
242
+ rmssdHrv?: number;
243
+ totalFractionalAscent?: number;
244
+ totalFractionalDescent?: number;
245
+ avgCoreTemperature?: number;
246
+ minCoreTemperature?: number;
247
+ maxCoreTemperature?: number;
248
+ lapMesgs?: LapMesgType[];
249
+ }
250
+ export interface RecordMesgType {
251
+ timestamp?: Date;
252
+ positionLat?: number;
253
+ positionLong?: number;
254
+ altitude?: number;
255
+ enhancedAltitude?: number;
256
+ heartRate?: number;
257
+ cadence?: number;
258
+ distance?: number;
259
+ speed?: number;
260
+ enhancedSpeed?: number;
261
+ power?: number;
262
+ compressedSpeedDistance?: Uint8Array;
263
+ grade?: number;
264
+ resistance?: number;
265
+ timeFromCourse?: number;
266
+ cycleLength?: number;
267
+ temperature?: number;
268
+ speed1s?: number;
269
+ cycles?: number;
270
+ totalCycles?: number;
271
+ compressedAccumulatedPower?: number;
272
+ accumulatedPower?: number;
273
+ leftRightBalance?: number;
274
+ gpsAccuracy?: number;
275
+ verticalSpeed?: number;
276
+ calories?: number;
277
+ verticalOscillation?: number;
278
+ stanceTimePercent?: number;
279
+ stanceTime?: number;
280
+ activityType?: string;
281
+ leftTorqueEffectiveness?: number;
282
+ rightTorqueEffectiveness?: number;
283
+ leftPedalSmoothness?: number;
284
+ rightPedalSmoothness?: number;
285
+ combinedPedalSmoothness?: number;
286
+ time128?: number;
287
+ strokeType?: string;
288
+ zone?: number;
289
+ ballSpeed?: number;
290
+ cadence256?: number;
291
+ fractionalCadence?: number;
292
+ totalHemoglobinConc?: number;
293
+ totalHemoglobinConcMin?: number;
294
+ totalHemoglobinConcMax?: number;
295
+ saturatedHemoglobinPercent?: number;
296
+ saturatedHemoglobinPercentMin?: number;
297
+ saturatedHemoglobinPercentMax?: number;
298
+ deviceIndex?: number;
299
+ leftPco?: number;
300
+ rightPco?: number;
301
+ leftPowerPhase?: number;
302
+ leftPowerPhasePeak?: number;
303
+ rightPowerPhase?: number;
304
+ rightPowerPhasePeak?: number;
305
+ batterySoc?: number;
306
+ motorPower?: number;
307
+ verticalRatio?: number;
308
+ stanceTimeBalance?: number;
309
+ stepLength?: number;
310
+ cycleLength16?: number;
311
+ absolutePressure?: number;
312
+ depth?: number;
313
+ nextStopDepth?: number;
314
+ nextStopTime?: number;
315
+ timeToSurface?: number;
316
+ ndlTime?: number;
317
+ cnsLoad?: number;
318
+ n2Load?: number;
319
+ respirationRate?: number;
320
+ enhancedRespirationRate?: number;
321
+ grit?: number;
322
+ flow?: number;
323
+ currentStress?: number;
324
+ ebikeTravelRange?: number;
325
+ ebikeBatteryLevel?: number;
326
+ ebikeAssistMode?: number;
327
+ ebikeAssistLevelPercent?: number;
328
+ airTimeRemaining?: number;
329
+ pressureSac?: number;
330
+ volumeSac?: number;
331
+ rmv?: number;
332
+ ascentRate?: number;
333
+ po2?: number;
334
+ coreTemperature?: number;
335
+ }
336
+ export interface LengthMesgType {
337
+ timestamp: Date;
338
+ messageIndex: number;
339
+ event?: string;
340
+ eventType?: string;
341
+ startTime?: Date;
342
+ totalElapsedTime?: number;
343
+ totalTimerTime?: number;
344
+ totalStrokes?: number;
345
+ avgSpeed?: number;
346
+ swimStroke?: "breaststroke" | "freestyle" | "backstroke" | "butterfly" | "drill" | "mixed" | "im" | "invalid";
347
+ avgSwimmingCadence?: number;
348
+ eventGroup?: number;
349
+ totalCalories?: number;
350
+ lengthType?: "active" | "idle";
351
+ playerScore?: number;
352
+ opponentScore?: number;
353
+ strokeCount?: number;
354
+ zoneCount?: number;
355
+ enhancedAvgRespirationRate?: number;
356
+ enHancedMaxRespirationRate?: number;
357
+ avgRespirationRate?: number;
358
+ maxRespirationRate?: number;
359
+ }
360
+ export interface LapMesgType {
361
+ messageIndex: number;
362
+ timestamp?: Date;
363
+ event?: string;
364
+ eventType?: string;
365
+ startTime?: Date;
366
+ startPositionLat?: number;
367
+ startPositionLong?: number;
368
+ endPositionLat?: number;
369
+ endPositionLong?: number;
370
+ totalElapsedTime?: number;
371
+ totalTimerTime?: number;
372
+ totalDistance?: number;
373
+ totalCycles?: number;
374
+ totalStrides?: number;
375
+ totalStrokes?: number;
376
+ totalCalories?: number;
377
+ totalFatCalories?: number;
378
+ avgSpeed?: number;
379
+ enhancedAvgSpeed?: number;
380
+ maxSpeed?: number;
381
+ enhancedMaxSpeed?: number;
382
+ avgHeartRate?: number;
383
+ maxHeartRate?: number;
384
+ avgCadence?: number;
385
+ avgRunningCadence?: number;
386
+ maxCadence?: number;
387
+ maxRunningCadence?: number;
388
+ avgPower?: number;
389
+ maxPower?: number;
390
+ totalAscent?: number;
391
+ totalDescent?: number;
392
+ intensity?: string;
393
+ lapTrigger?: string;
394
+ sport?: string;
395
+ eventGroup?: number;
396
+ numLengths?: number;
397
+ normalizedPower?: number;
398
+ leftRightBalance?: number;
399
+ firstLengthIndex?: number;
400
+ avgStrokeDistance?: number;
401
+ swimStroke?: string;
402
+ subSport?: string;
403
+ numActiveLengths?: number;
404
+ totalWork?: number;
405
+ avgAltitude?: number;
406
+ enhancedAvgAltitude?: number;
407
+ maxAltitude?: number;
408
+ enhancedMaxAltitude?: number;
409
+ gpsAccuracy?: number;
410
+ avgGrade?: number;
411
+ avgPosGrade?: number;
412
+ avgNegGrade?: number;
413
+ maxPosGrade?: number;
414
+ maxNegGrade?: number;
415
+ avgTemperature?: number;
416
+ maxTemperature?: number;
417
+ totalMovingTime?: number;
418
+ avgPosVerticalSpeed?: number;
419
+ avgNegVerticalSpeed?: number;
420
+ maxPosVerticalSpeed?: number;
421
+ maxNegVerticalSpeed?: number;
422
+ minHeartRate?: number;
423
+ timeInHrZone?: number[];
424
+ timeInSpeedZone?: number[];
425
+ timeInCadenceZone?: number[];
426
+ timeInPowerZone?: number[];
427
+ repetitionNum?: number;
428
+ minAltitude?: number;
429
+ enhancedMinAltitude?: number;
430
+ wktStepIndex?: number;
431
+ opponentScore?: number;
432
+ strokeCount?: number[];
433
+ zoneCount?: number[];
434
+ avgVerticalOscillation?: number;
435
+ avgStanceTimePercent?: number;
436
+ avgStanceTime?: number;
437
+ avgFractionalCadence?: number;
438
+ maxFractionalCadence?: number;
439
+ totalFractionalCycles?: number;
440
+ playerScore?: number;
441
+ avgTotalHemoglobinConc?: number;
442
+ minTotalHemoglobinConc?: number;
443
+ maxTotalHemoglobinConc?: number;
444
+ avgSaturatedHemoglobinPercent?: number;
445
+ minSaturatedHemoglobinPercent?: number;
446
+ maxSaturatedHemoglobinPercent?: number;
447
+ avgLeftTorqueEffectiveness?: number;
448
+ avgRightTorqueEffectiveness?: number;
449
+ avgLeftPedalSmoothness?: number;
450
+ avgRightPedalSmoothness?: number;
451
+ avgCombinedPedalSmoothness?: number;
452
+ timeStanding?: number;
453
+ standCount?: number;
454
+ avgLeftPco?: number;
455
+ avgRightPco?: number;
456
+ avgLeftPowerPhase?: number[];
457
+ avgLeftPowerPhasePeak?: number[];
458
+ avgRightPowerPhase?: number[];
459
+ avgRightPowerPhasePeak?: number[];
460
+ avgPowerPosition?: number[];
461
+ maxPowerPosition?: number[];
462
+ avgCadencePosition?: number[];
463
+ maxCadencePosition?: number[];
464
+ avgLevMotorPower?: number;
465
+ maxLevMotorPower?: number;
466
+ levBatteryConsumption?: number;
467
+ avgVerticalRatio?: number;
468
+ avgStanceTimeBalance?: number;
469
+ avgStepLength?: number;
470
+ avgVam?: number;
471
+ avgDepth?: number;
472
+ maxDepth?: number;
473
+ minTemperature?: number;
474
+ enhancedAvgRespirationRate?: number;
475
+ enhancedMaxRespirationRate?: number;
476
+ avgRespirationRate?: number;
477
+ maxRespirationRate?: number;
478
+ totalGrit?: number;
479
+ totalFlow?: number;
480
+ jumpCount?: number;
481
+ avgGrit?: number;
482
+ avgFlow?: number;
483
+ totalFractionalAscent?: number;
484
+ totalFractionalDescent?: number;
485
+ avgCoreTemperature?: number;
486
+ minCoreTemperature?: number;
487
+ maxCoreTemperature?: number;
488
+ recordMesgs?: RecordMesgType[];
489
+ lengthMesgs?: LengthMesgType[];
490
+ }
491
+ export interface ActivityMesgType {
492
+ timestamp?: Date;
493
+ totalTimerTime?: number;
494
+ numSessions?: number;
495
+ type?: string;
496
+ event?: string;
497
+ eventType?: string;
498
+ [key: string]: number | string | undefined | any;
499
+ }
500
+ export interface FITContext extends IProcessingContext {
501
+ rawData?: Buffer;
502
+ rawMessages?: FITDecoderMesgs;
503
+ result?: FITFileType;
504
+ fileHeader?: {
505
+ type?: string;
506
+ manufacturer?: string;
507
+ product?: number;
508
+ };
509
+ performance: {
510
+ startTime: number;
511
+ parseTime?: number;
512
+ extractTime?: number;
513
+ structureTime?: number;
514
+ endTime?: number;
515
+ };
516
+ }
@@ -0,0 +1 @@
1
+ export declare const FITRecordOriginKey: string[];
@@ -0,0 +1,16 @@
1
+ import { IPlugin, IConverterPlugin, IMiddlewarePlugin, BaseConverter, BaseMiddleware } from "../core/base.js";
2
+ import { DecoderContext, GPX11Type } from "./types.js";
3
+ export interface IGPXPlugin extends IPlugin<DecoderContext> {
4
+ }
5
+ export interface IGPXConverterPlugin extends IConverterPlugin<DecoderContext> {
6
+ }
7
+ export interface IGPXMiddlewarePlugin extends IMiddlewarePlugin<DecoderContext, GPX11Type> {
8
+ }
9
+ export declare abstract class BaseGPXConverter extends BaseConverter<DecoderContext> implements IGPXConverterPlugin {
10
+ protected parseCoordinate(value: string | number | undefined): number | undefined;
11
+ protected parseGPXTime(value: string | undefined): Date | undefined;
12
+ protected extractNumericAttributes<U extends Record<string, any>>(ast: any, target: U, mapping: Record<string, keyof U>): void;
13
+ }
14
+ export declare abstract class BaseGPXMiddleware extends BaseMiddleware<DecoderContext, GPX11Type> implements IGPXMiddlewarePlugin {
15
+ onError(error: Error, context: DecoderContext): Promise<void>;
16
+ }
@@ -0,0 +1,62 @@
1
+ import { BaseGPXConverter } from "./base.js";
2
+ import { TokenAST, ExtensionsType } from "../types.js";
3
+ import { BoundsType, CopyrightType, EmailType, LinkType, MetadataType, PersonType, RteType, TrksegType, TrkType, WptType, DecoderContext } from "./types.js";
4
+ export declare class WptConverter extends BaseGPXConverter {
5
+ name: string;
6
+ supportedTags: string[];
7
+ version: string;
8
+ convert(ast: TokenAST, context: DecoderContext): WptType | undefined;
9
+ private mapExtensionsToPoint;
10
+ }
11
+ export declare class RteConverter extends BaseGPXConverter {
12
+ name: string;
13
+ supportedTags: string[];
14
+ convert(ast: TokenAST, context: DecoderContext): RteType | undefined;
15
+ }
16
+ export declare class TrkConverter extends BaseGPXConverter {
17
+ name: string;
18
+ supportedTags: string[];
19
+ convert(ast: TokenAST, context: DecoderContext): TrkType | undefined;
20
+ }
21
+ export declare class TrksegConverter extends BaseGPXConverter {
22
+ name: string;
23
+ supportedTags: string[];
24
+ convert(ast: TokenAST, context: DecoderContext): TrksegType | undefined;
25
+ }
26
+ export declare class LinkConverter extends BaseGPXConverter {
27
+ name: string;
28
+ supportedTags: string[];
29
+ convert(ast: TokenAST, context: DecoderContext): LinkType | undefined;
30
+ }
31
+ export declare class MetadataConverter extends BaseGPXConverter {
32
+ name: string;
33
+ supportedTags: string[];
34
+ convert(ast: TokenAST, context: DecoderContext): MetadataType | undefined;
35
+ }
36
+ export declare class PersonConverter extends BaseGPXConverter {
37
+ name: string;
38
+ supportedTags: string[];
39
+ convert(ast: TokenAST, context: DecoderContext): PersonType | undefined;
40
+ }
41
+ export declare class EmailConverter extends BaseGPXConverter {
42
+ name: string;
43
+ supportedTags: string[];
44
+ convert(ast: TokenAST, context: DecoderContext): EmailType | undefined;
45
+ }
46
+ export declare class CopyrightConverter extends BaseGPXConverter {
47
+ name: string;
48
+ supportedTags: string[];
49
+ convert(ast: TokenAST, context: DecoderContext): CopyrightType | undefined;
50
+ }
51
+ export declare class BoundsConverter extends BaseGPXConverter {
52
+ name: string;
53
+ supportedTags: string[];
54
+ convert(ast: TokenAST, context: DecoderContext): BoundsType | undefined;
55
+ }
56
+ export declare class ExtensionsConverter extends BaseGPXConverter {
57
+ name: string;
58
+ supportedTags: string[];
59
+ convert(ast: TokenAST, context: DecoderContext): ExtensionsType | undefined;
60
+ private flattenExtensionElement;
61
+ private parseExtensionValue;
62
+ }
@@ -0,0 +1,43 @@
1
+ import { ExtensionsType, TokenAST } from "../types.js";
2
+ import { IGPXConverterPlugin, IGPXMiddlewarePlugin } from "./base.js";
3
+ import { GPX11Type } from "./types.js";
4
+ export declare class GPXDecoder {
5
+ private converterPlugins;
6
+ private registeredPlugins;
7
+ private middlewarePlugins;
8
+ private processors;
9
+ private initialized;
10
+ private defaultConvertersRegistered;
11
+ constructor();
12
+ private initializePipeline;
13
+ private registerDefaultConverters;
14
+ private addConverterForTag;
15
+ registerConverter(plugin: IGPXConverterPlugin): Promise<void>;
16
+ registerMiddleware(plugin: IGPXMiddlewarePlugin): Promise<void>;
17
+ getConverter(tag: string): IGPXConverterPlugin | undefined;
18
+ getAllConverters(tag: string): IGPXConverterPlugin[];
19
+ unregisterConverter(pluginName: string): void;
20
+ unregisterMiddleware(name: string): void;
21
+ listConverters(): string[];
22
+ listConverterPlugins(): string[];
23
+ listMiddlewares(): string[];
24
+ listProcessors(): string[];
25
+ getConverterDetails(tag?: string): Record<string, Array<{
26
+ name: string;
27
+ priority: number;
28
+ }>>;
29
+ getMiddlewareDetails(): Array<{
30
+ name: string;
31
+ hooks: string[];
32
+ }>;
33
+ initialize(): Promise<void>;
34
+ destroy(): Promise<void>;
35
+ private createContext;
36
+ private executeMiddlewareHook;
37
+ parserByBuffer(buffer: Buffer): Promise<GPX11Type | undefined>;
38
+ convertExtensions(extensionsAST: TokenAST): ExtensionsType;
39
+ }
40
+ declare const _default: {
41
+ GPXDecoder: typeof GPXDecoder;
42
+ };
43
+ export default _default;