trackswap 0.0.26 → 0.0.27

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