@sports-alliance/sports-lib 6.1.14 → 7.0.2

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 (112) hide show
  1. package/.github/workflows/test.yml +2 -2
  2. package/lib/cjs/activities/activity.types.d.ts +6 -3
  3. package/lib/cjs/activities/activity.types.js +9 -4
  4. package/lib/cjs/data/data.cycling-position.js +1 -1
  5. package/lib/cjs/data/data.feeling.js +1 -1
  6. package/lib/cjs/data/data.interface.js +1 -1
  7. package/lib/cjs/data/data.rpe.js +1 -1
  8. package/lib/cjs/data/data.store.export.spec.js +28 -14
  9. package/lib/cjs/data/data.store.js +1 -1
  10. package/lib/cjs/events/adapters/file-type.enum.js +1 -1
  11. package/lib/cjs/events/adapters/importers/fit/importer.fit.coros.device.names.js +2 -1
  12. package/lib/cjs/events/adapters/importers/fit/importer.fit.d.ts +2 -1
  13. package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.device.names.js +61 -2
  14. package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +867 -855
  15. package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +34 -0
  16. package/lib/cjs/events/adapters/importers/fit/importer.fit.integration.spec.js +22 -8
  17. package/lib/cjs/events/adapters/importers/fit/importer.fit.js +24 -2
  18. package/lib/cjs/events/adapters/importers/fit/importer.fit.suunto.device.names.js +1 -0
  19. package/lib/cjs/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +5 -1
  20. package/lib/cjs/events/adapters/importers/gpx/importer.gpx.integration.spec.js +22 -8
  21. package/lib/cjs/events/adapters/importers/gpx/importer.gpx.js +1 -1
  22. package/lib/cjs/events/adapters/importers/gpx/importer.gpx.spec.js +50 -0
  23. package/lib/cjs/events/adapters/importers/suunto/importer.suunto.activity.ids.js +1 -1
  24. package/lib/cjs/events/adapters/importers/suunto/importer.suunto.device.names.js +1 -0
  25. package/lib/cjs/events/adapters/importers/suunto/importer.suunto.integration.spec.js +22 -8
  26. package/lib/cjs/events/adapters/importers/tcx/importer.tcx.integration.spec.js +22 -8
  27. package/lib/cjs/events/utilities/activity.utilities.js +7 -7
  28. package/lib/cjs/events/utilities/grade-calculator/low-pass-filter.js +3 -3
  29. package/lib/cjs/events/utilities/helpers.d.ts +1 -1
  30. package/lib/cjs/events/utilities/helpers.js +19 -19
  31. package/lib/cjs/index.d.ts +1 -1
  32. package/lib/cjs/index.js +5 -1
  33. package/lib/cjs/laps/lap.types.js +1 -1
  34. package/lib/cjs/meta-data/event-meta-data.interface.d.ts +4 -4
  35. package/lib/cjs/meta-data/event-meta-data.interface.js +2 -2
  36. package/lib/cjs/meta-data/meta-data.d.ts +4 -4
  37. package/lib/cjs/meta-data/meta-data.js +4 -4
  38. package/lib/cjs/meta-data/meta-data.json.interface.d.ts +1 -1
  39. package/lib/cjs/privacy/privacy.class.interface.js +1 -1
  40. package/lib/cjs/specs/activities-parsing.integration.spec.js +75 -61
  41. package/lib/cjs/specs/strava-streams-compliance.spec.js +22 -8
  42. package/lib/cjs/streams/compressed.stream.interface.js +2 -2
  43. package/lib/cjs/tiles/tile.settings.interface.js +5 -5
  44. package/lib/cjs/users/settings/dashboard/user.dashboard.settings.interface.js +1 -1
  45. package/lib/cjs/users/settings/user.app.settings.interface.js +1 -1
  46. package/lib/cjs/users/settings/user.chart.settings.interface.js +3 -3
  47. package/lib/cjs/users/settings/user.map.settings.interface.js +2 -2
  48. package/lib/cjs/users/settings/user.unit.settings.interface.js +9 -9
  49. package/lib/esm/activities/activity.types.d.ts +6 -3
  50. package/lib/esm/activities/activity.types.js +7 -2
  51. package/lib/esm/data/data.store.export.spec.js +6 -6
  52. package/lib/esm/data/data.store.js +1 -1
  53. package/lib/esm/events/adapters/importers/fit/importer.fit.coros.device.names.js +2 -1
  54. package/lib/esm/events/adapters/importers/fit/importer.fit.d.ts +2 -1
  55. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.device.names.js +61 -2
  56. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +867 -855
  57. package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +32 -0
  58. package/lib/esm/events/adapters/importers/fit/importer.fit.js +24 -2
  59. package/lib/esm/events/adapters/importers/fit/importer.fit.suunto.device.names.js +1 -0
  60. package/lib/esm/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +5 -1
  61. package/lib/esm/events/adapters/importers/gpx/importer.gpx.js +1 -1
  62. package/lib/esm/events/adapters/importers/gpx/importer.gpx.spec.js +17 -0
  63. package/lib/esm/events/adapters/importers/suunto/importer.suunto.device.names.js +1 -0
  64. package/lib/esm/events/utilities/activity.utilities.js +7 -7
  65. package/lib/esm/events/utilities/grade-calculator/low-pass-filter.js +3 -3
  66. package/lib/esm/events/utilities/helpers.d.ts +1 -1
  67. package/lib/esm/index.d.ts +1 -1
  68. package/lib/esm/meta-data/event-meta-data.interface.d.ts +4 -4
  69. package/lib/esm/meta-data/event-meta-data.interface.js +1 -1
  70. package/lib/esm/meta-data/meta-data.d.ts +4 -4
  71. package/lib/esm/meta-data/meta-data.js +2 -2
  72. package/lib/esm/meta-data/meta-data.json.interface.d.ts +1 -1
  73. package/lib/esm/specs/activities-parsing.integration.spec.js +53 -53
  74. package/package.json +21 -21
  75. package/.editorconfig +0 -14
  76. package/.eslintignore +0 -4
  77. package/.eslintrc.js +0 -9
  78. package/.prettierignore +0 -24
  79. package/.prettierrc.json +0 -12
  80. package/.vscode/launch.json +0 -49
  81. package/.vscode/tasks.json +0 -34
  82. package/CODE_OF_CONDUCT.md +0 -76
  83. package/jest.config.js +0 -23
  84. package/lib/cjs/events/adapters/importers/fit/importer.fit.oom.spec.js +0 -60
  85. package/lib/cjs/package.json +0 -1
  86. package/lib/cjs/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
  87. package/lib/cjs/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
  88. package/lib/cjs/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
  89. package/lib/cjs/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
  90. package/lib/cjs/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
  91. package/lib/cjs/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
  92. package/lib/cjs/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
  93. package/lib/cjs/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
  94. package/lib/cjs/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
  95. package/lib/cjs/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
  96. package/lib/esm/events/adapters/importers/fit/importer.fit.oom.spec.js +0 -39
  97. package/lib/esm/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
  98. package/lib/esm/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
  99. package/lib/esm/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
  100. package/lib/esm/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
  101. package/lib/esm/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
  102. package/lib/esm/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
  103. package/lib/esm/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
  104. package/lib/esm/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
  105. package/lib/esm/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
  106. package/lib/esm/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
  107. package/reproduce_oom.ts +0 -35
  108. package/tsconfig.cjs.json +0 -7
  109. package/tsconfig.esm.json +0 -8
  110. package/tsconfig.lib.json +0 -8
  111. /package/lib/cjs/events/adapters/importers/fit/{importer.fit.oom.spec.d.ts → importer.fit.garmin.profile.mapper.spec.d.ts} +0 -0
  112. /package/lib/esm/events/adapters/importers/fit/{importer.fit.oom.spec.d.ts → importer.fit.garmin.profile.mapper.spec.d.ts} +0 -0
@@ -5,7 +5,7 @@ var TileTypes;
5
5
  (function (TileTypes) {
6
6
  TileTypes["Chart"] = "Chart";
7
7
  TileTypes["Map"] = "Map";
8
- })(TileTypes = exports.TileTypes || (exports.TileTypes = {}));
8
+ })(TileTypes || (exports.TileTypes = TileTypes = {}));
9
9
  var ChartTypes;
10
10
  (function (ChartTypes) {
11
11
  ChartTypes["Pie"] = "Pie";
@@ -17,19 +17,19 @@ var ChartTypes;
17
17
  ChartTypes["Spiral"] = "Spiral";
18
18
  ChartTypes["BrianDevine"] = "Brian Devine";
19
19
  ChartTypes["IntensityZones"] = "Intensity Zones";
20
- })(ChartTypes = exports.ChartTypes || (exports.ChartTypes = {}));
20
+ })(ChartTypes || (exports.ChartTypes = ChartTypes = {}));
21
21
  var ChartDataValueTypes;
22
22
  (function (ChartDataValueTypes) {
23
23
  ChartDataValueTypes["Total"] = "Total";
24
24
  ChartDataValueTypes["Average"] = "Average";
25
25
  ChartDataValueTypes["Maximum"] = "Maximum";
26
26
  ChartDataValueTypes["Minimum"] = "Minimum";
27
- })(ChartDataValueTypes = exports.ChartDataValueTypes || (exports.ChartDataValueTypes = {}));
27
+ })(ChartDataValueTypes || (exports.ChartDataValueTypes = ChartDataValueTypes = {}));
28
28
  var ChartDataCategoryTypes;
29
29
  (function (ChartDataCategoryTypes) {
30
30
  ChartDataCategoryTypes["ActivityType"] = "Activity Type";
31
31
  ChartDataCategoryTypes["DateType"] = "Date Type";
32
- })(ChartDataCategoryTypes = exports.ChartDataCategoryTypes || (exports.ChartDataCategoryTypes = {}));
32
+ })(ChartDataCategoryTypes || (exports.ChartDataCategoryTypes = ChartDataCategoryTypes = {}));
33
33
  var TimeIntervals;
34
34
  (function (TimeIntervals) {
35
35
  TimeIntervals[TimeIntervals["Auto"] = 0] = "Auto";
@@ -41,4 +41,4 @@ var TimeIntervals;
41
41
  TimeIntervals[TimeIntervals["Quarterly"] = 6] = "Quarterly";
42
42
  TimeIntervals[TimeIntervals["Semesterly"] = 7] = "Semesterly";
43
43
  TimeIntervals[TimeIntervals["Yearly"] = 8] = "Yearly";
44
- })(TimeIntervals = exports.TimeIntervals || (exports.TimeIntervals = {}));
44
+ })(TimeIntervals || (exports.TimeIntervals = TimeIntervals = {}));
@@ -13,4 +13,4 @@ var DateRanges;
13
13
  DateRanges[DateRanges["lastYear"] = 7] = "lastYear";
14
14
  DateRanges[DateRanges["custom"] = 8] = "custom";
15
15
  DateRanges[DateRanges["all"] = 9] = "all";
16
- })(DateRanges = exports.DateRanges || (exports.DateRanges = {}));
16
+ })(DateRanges || (exports.DateRanges = DateRanges = {}));
@@ -5,4 +5,4 @@ var AppThemes;
5
5
  (function (AppThemes) {
6
6
  AppThemes["Normal"] = "Normal";
7
7
  AppThemes["Dark"] = "Dark";
8
- })(AppThemes = exports.AppThemes || (exports.AppThemes = {}));
8
+ })(AppThemes || (exports.AppThemes = AppThemes = {}));
@@ -12,15 +12,15 @@ var ChartThemes;
12
12
  ChartThemes["Material"] = "material";
13
13
  ChartThemes["MoonriseKingdom"] = "moonrisekingdom";
14
14
  ChartThemes["SpiritedAway"] = "spiritedaway";
15
- })(ChartThemes = exports.ChartThemes || (exports.ChartThemes = {}));
15
+ })(ChartThemes || (exports.ChartThemes = ChartThemes = {}));
16
16
  var XAxisTypes;
17
17
  (function (XAxisTypes) {
18
18
  XAxisTypes["Time"] = "Time";
19
19
  XAxisTypes["Duration"] = "Duration";
20
20
  XAxisTypes["Distance"] = "Distance";
21
- })(XAxisTypes = exports.XAxisTypes || (exports.XAxisTypes = {}));
21
+ })(XAxisTypes || (exports.XAxisTypes = XAxisTypes = {}));
22
22
  var ChartCursorBehaviours;
23
23
  (function (ChartCursorBehaviours) {
24
24
  ChartCursorBehaviours["ZoomX"] = "zoomX";
25
25
  ChartCursorBehaviours["SelectX"] = "selectX";
26
- })(ChartCursorBehaviours = exports.ChartCursorBehaviours || (exports.ChartCursorBehaviours = {}));
26
+ })(ChartCursorBehaviours || (exports.ChartCursorBehaviours = ChartCursorBehaviours = {}));
@@ -15,11 +15,11 @@ var MapThemes;
15
15
  MapThemes["Hopper"] = "Hopper";
16
16
  MapThemes["DarkElectric"] = "DarkElectric";
17
17
  MapThemes["Mondrian"] = "Mondrian";
18
- })(MapThemes = exports.MapThemes || (exports.MapThemes = {}));
18
+ })(MapThemes || (exports.MapThemes = MapThemes = {}));
19
19
  var MapTypes;
20
20
  (function (MapTypes) {
21
21
  MapTypes["RoadMap"] = "roadmap";
22
22
  MapTypes["Satellite"] = "satellite";
23
23
  MapTypes["Hybrid"] = "hybrid";
24
24
  MapTypes["Terrain"] = "terrain";
25
- })(MapTypes = exports.MapTypes || (exports.MapTypes = {}));
25
+ })(MapTypes || (exports.MapTypes = MapTypes = {}));
@@ -10,7 +10,7 @@ var SpeedUnits;
10
10
  SpeedUnits["Knots"] = "Speed in knots";
11
11
  // MetersPerMinute = 'Meters per minute',
12
12
  // FeetPerMinute = 'Feet per minute',
13
- })(SpeedUnits = exports.SpeedUnits || (exports.SpeedUnits = {}));
13
+ })(SpeedUnits || (exports.SpeedUnits = SpeedUnits = {}));
14
14
  var GradeAdjustedSpeedUnits;
15
15
  (function (GradeAdjustedSpeedUnits) {
16
16
  GradeAdjustedSpeedUnits["KilometersPerHour"] = "Grade Adjusted Speed in kilometers per hour";
@@ -20,7 +20,7 @@ var GradeAdjustedSpeedUnits;
20
20
  GradeAdjustedSpeedUnits["Knots"] = "Grade Adjusted Speed in knots";
21
21
  // MetersPerMinute = 'Meters per minute',
22
22
  // FeetPerMinute = 'Feet per minute',
23
- })(GradeAdjustedSpeedUnits = exports.GradeAdjustedSpeedUnits || (exports.GradeAdjustedSpeedUnits = {}));
23
+ })(GradeAdjustedSpeedUnits || (exports.GradeAdjustedSpeedUnits = GradeAdjustedSpeedUnits = {}));
24
24
  var SpeedUnitsToGradeAdjustedSpeedUnits;
25
25
  (function (SpeedUnitsToGradeAdjustedSpeedUnits) {
26
26
  SpeedUnitsToGradeAdjustedSpeedUnits["Speed in kilometers per hour"] = "KilometersPerHour";
@@ -30,7 +30,7 @@ var SpeedUnitsToGradeAdjustedSpeedUnits;
30
30
  SpeedUnitsToGradeAdjustedSpeedUnits["Speed in meters per minute"] = "MetersPerMinute";
31
31
  SpeedUnitsToGradeAdjustedSpeedUnits["Speed in feet per minute"] = "FeetPerMinute";
32
32
  SpeedUnitsToGradeAdjustedSpeedUnits["Speed in knots"] = "Knots";
33
- })(SpeedUnitsToGradeAdjustedSpeedUnits = exports.SpeedUnitsToGradeAdjustedSpeedUnits || (exports.SpeedUnitsToGradeAdjustedSpeedUnits = {}));
33
+ })(SpeedUnitsToGradeAdjustedSpeedUnits || (exports.SpeedUnitsToGradeAdjustedSpeedUnits = SpeedUnitsToGradeAdjustedSpeedUnits = {}));
34
34
  var VerticalSpeedUnits;
35
35
  (function (VerticalSpeedUnits) {
36
36
  VerticalSpeedUnits["MetersPerSecond"] = "Vertical Speed";
@@ -41,27 +41,27 @@ var VerticalSpeedUnits;
41
41
  VerticalSpeedUnits["FeetPerHour"] = "Vertical speed in feet per hour";
42
42
  VerticalSpeedUnits["KilometersPerHour"] = "Vertical speed in kilometers per hour";
43
43
  VerticalSpeedUnits["MilesPerHour"] = "Vertical speed in miles per hour";
44
- })(VerticalSpeedUnits = exports.VerticalSpeedUnits || (exports.VerticalSpeedUnits = {}));
44
+ })(VerticalSpeedUnits || (exports.VerticalSpeedUnits = VerticalSpeedUnits = {}));
45
45
  var PaceUnits;
46
46
  (function (PaceUnits) {
47
47
  PaceUnits["MinutesPerKilometer"] = "Pace";
48
48
  PaceUnits["MinutesPerMile"] = "Pace in minutes per mile";
49
- })(PaceUnits = exports.PaceUnits || (exports.PaceUnits = {}));
49
+ })(PaceUnits || (exports.PaceUnits = PaceUnits = {}));
50
50
  var GradeAdjustedPaceUnits;
51
51
  (function (GradeAdjustedPaceUnits) {
52
52
  GradeAdjustedPaceUnits["MinutesPerKilometer"] = "Grade Adjusted Pace";
53
53
  GradeAdjustedPaceUnits["MinutesPerMile"] = "Grade Adjusted Pace in minutes per mile";
54
- })(GradeAdjustedPaceUnits = exports.GradeAdjustedPaceUnits || (exports.GradeAdjustedPaceUnits = {}));
54
+ })(GradeAdjustedPaceUnits || (exports.GradeAdjustedPaceUnits = GradeAdjustedPaceUnits = {}));
55
55
  var PaceUnitsToGradeAdjustedPaceUnits;
56
56
  (function (PaceUnitsToGradeAdjustedPaceUnits) {
57
57
  PaceUnitsToGradeAdjustedPaceUnits["Pace"] = "MinutesPerKilometer";
58
58
  PaceUnitsToGradeAdjustedPaceUnits["Pace in minutes per mile"] = "MinutesPerMile";
59
- })(PaceUnitsToGradeAdjustedPaceUnits = exports.PaceUnitsToGradeAdjustedPaceUnits || (exports.PaceUnitsToGradeAdjustedPaceUnits = {}));
59
+ })(PaceUnitsToGradeAdjustedPaceUnits || (exports.PaceUnitsToGradeAdjustedPaceUnits = PaceUnitsToGradeAdjustedPaceUnits = {}));
60
60
  var SwimPaceUnits;
61
61
  (function (SwimPaceUnits) {
62
62
  SwimPaceUnits["MinutesPer100Meter"] = "Swim Pace";
63
63
  SwimPaceUnits["MinutesPer100Yard"] = "Swim Pace in minutes per 100 yard";
64
- })(SwimPaceUnits = exports.SwimPaceUnits || (exports.SwimPaceUnits = {}));
64
+ })(SwimPaceUnits || (exports.SwimPaceUnits = SwimPaceUnits = {}));
65
65
  // Disabled rest of the days due to lack of availability of calculating the week number
66
66
  // See https://www.npmjs.com/package/weeknumber
67
67
  var DaysOfTheWeek;
@@ -73,4 +73,4 @@ var DaysOfTheWeek;
73
73
  // Thursday,
74
74
  // Friday,
75
75
  DaysOfTheWeek[DaysOfTheWeek["Saturday"] = 2] = "Saturday";
76
- })(DaysOfTheWeek = exports.DaysOfTheWeek || (exports.DaysOfTheWeek = {}));
76
+ })(DaysOfTheWeek || (exports.DaysOfTheWeek = DaysOfTheWeek = {}));
@@ -141,9 +141,12 @@ export declare enum ActivityTypes {
141
141
  'MountainBiking' = "Mountain Biking",
142
142
  'Mountain Biking' = "Mountain Biking",
143
143
  'cycling_cyclocross' = "Mountain Biking",
144
- 'mountain' = "Mountain Biking",
144
+ 'mountain' = "Mountain Biking",// @todo this feels hacky but exists and indeed it's MTB
145
145
  'Mountain biking' = "Mountain Biking",
146
+ 'cycling_mountain_enduro' = "Enduro MTB",
147
+ 'Enduro MTB' = "Enduro MTB",
146
148
  'cycling_downhill' = "Downhill Cycling",
149
+ 'cycling_mountain_downhill' = "Downhill Cycling",
147
150
  'DownhillCycling' = "Downhill Cycling",
148
151
  'Downhill Cycling' = "Downhill Cycling",
149
152
  /**
@@ -317,8 +320,8 @@ export declare enum ActivityTypes {
317
320
  'BackCountrySkiing' = "Backcountry Skiing",
318
321
  'BackcountrySkiing' = "Backcountry Skiing",
319
322
  'BackcountrySki' = "Backcountry Skiing",
320
- 'cross_country_skiing_backcountry' = "Backcountry Skiing",
321
- 'alpine_skiing_backcountry' = "Backcountry Skiing",
323
+ 'cross_country_skiing_backcountry' = "Backcountry Skiing",// Hack for suunto
324
+ 'alpine_skiing_backcountry' = "Backcountry Skiing",// Hack for suunto
322
325
  'backcountry' = "Backcountry Skiing",
323
326
  'BackCountrySki' = "Backcountry Skiing",
324
327
  /**
@@ -230,7 +230,12 @@ export var ActivityTypes;
230
230
  ActivityTypes["cycling_cyclocross"] = "Mountain Biking";
231
231
  ActivityTypes["mountain"] = "Mountain Biking";
232
232
  ActivityTypes["Mountain biking"] = "Mountain Biking";
233
+ // Enduro
234
+ ActivityTypes["cycling_mountain_enduro"] = "Enduro MTB";
235
+ ActivityTypes["Enduro MTB"] = "Enduro MTB";
236
+ // Downhill
233
237
  ActivityTypes["cycling_downhill"] = "Downhill Cycling";
238
+ ActivityTypes["cycling_mountain_downhill"] = "Downhill Cycling";
234
239
  ActivityTypes["DownhillCycling"] = "Downhill Cycling";
235
240
  ActivityTypes["Downhill Cycling"] = "Downhill Cycling";
236
241
  /**
@@ -1015,8 +1020,8 @@ export class ActivityTypesMoving {
1015
1020
  * Holds moving speed threshold in m/s per sport group
1016
1021
  */
1017
1022
  ActivityTypesMoving.SPORTS_MOVING_SPEED_THRESHOLD_MAP = new Map([
1018
- [ActivityTypeGroups.Running, 1.5 / 3.6],
1019
- [ActivityTypeGroups.Cycling, 4 / 3.6],
1023
+ [ActivityTypeGroups.Running, 1.5 / 3.6], // kph to m/s
1024
+ [ActivityTypeGroups.Cycling, 4 / 3.6], // kph to m/s
1020
1025
  [ActivityTypeGroups.Swimming, 0.3] // 30 cm/s
1021
1026
  ]);
1022
1027
  ActivityTypesMoving.DEFAULT_MOVING_SPEED_THRESHOLD = 0.3; // m/s
@@ -13,12 +13,12 @@ describe('DataStore Export Verification', () => {
13
13
  'data.json.interface.ts',
14
14
  'data.position.interface.ts',
15
15
  'data.spec.ts',
16
- 'data.ts',
17
- 'data.string.ts',
18
- 'data.number.ts',
19
- 'data.boolean.ts',
20
- 'data.percent.ts',
21
- 'data.array.ts',
16
+ 'data.ts', // Base class
17
+ 'data.string.ts', // Base class
18
+ 'data.number.ts', // Base class
19
+ 'data.boolean.ts', // Base class
20
+ 'data.percent.ts', // Base class or abstract?
21
+ 'data.array.ts', // Base class
22
22
  'data.balance.ts' // interface/base
23
23
  ];
24
24
  files.forEach(file => {
@@ -359,7 +359,7 @@ export const DataStore = {
359
359
  DataVerticalSpeedMinMilesPerHour,
360
360
  DataIBI,
361
361
  DataSteps,
362
- DataStepsOld,
362
+ DataStepsOld, // @todo find way to make this easy to migrate for projects that persist data based on types
363
363
  DataStrydAltitude,
364
364
  DataStrydSpeed,
365
365
  DataStrydDistance,
@@ -1,4 +1,5 @@
1
1
  export const ImporterFitCorosDeviceNames = {
2
2
  802: 'PACE 2',
3
- 841: 'APEX Pro'
3
+ 841: 'APEX Pro',
4
+ 821: 'APEX'
4
5
  };
@@ -1,8 +1,9 @@
1
1
  import { EventInterface } from '../../../event.interface';
2
2
  import { CreatorInterface } from '../../../../creators/creator.interface';
3
3
  import { ActivityParsingOptions } from '../../../../activities/activity-parsing-options';
4
+ import { Buffer } from 'buffer';
4
5
  export declare class EventImporterFIT {
5
- static getFromArrayBuffer(arrayBuffer: ArrayBuffer, options?: ActivityParsingOptions, name?: string): Promise<EventInterface>;
6
+ static getFromArrayBuffer(arrayBuffer: ArrayBuffer | Buffer<ArrayBuffer>, options?: ActivityParsingOptions, name?: string): Promise<EventInterface>;
6
7
  /**
7
8
  * Tell if an activity is lengths based (e.g. Pool swimming activities)
8
9
  * @param sessionObject
@@ -116,6 +116,7 @@ export const ImporterFitGarminDeviceNames = {
116
116
  1328: 'Forerunner 910XT',
117
117
  1333: 'Edge 800',
118
118
  1334: 'Edge 800',
119
+ 1341: 'Alf 04',
119
120
  1345: 'Forerunner 610',
120
121
  1360: 'Forerunner 210',
121
122
  1386: 'Edge 800',
@@ -207,7 +208,7 @@ export const ImporterFitGarminDeviceNames = {
207
208
  2290: 'Edge 20',
208
209
  2292: 'Approach X40',
209
210
  2293: 'Fenix 3',
210
- 2294: 'VivoSmart',
211
+ 2294: 'VivoSmart EM',
211
212
  2310: 'Forerunner 630',
212
213
  2311: 'Forerunner 630',
213
214
  2313: 'Forerunner 230',
@@ -269,6 +270,7 @@ export const ImporterFitGarminDeviceNames = {
269
270
  2769: 'Foretrex 601 701',
270
271
  2772: 'VivoMove HR',
271
272
  2713: 'Edge 1030',
273
+ 2727: 'Forerunner 35',
272
274
  2796: 'Fenix 5',
273
275
  2797: 'Fenix 5S',
274
276
  2798: 'Fenix 5X',
@@ -311,9 +313,11 @@ export const ImporterFitGarminDeviceNames = {
311
313
  3134: 'Fenix 5S Plus',
312
314
  3135: 'Fenix 5X Plus',
313
315
  3142: 'Edge 520 Plus',
316
+ 3143: 'Descent T1',
314
317
  3144: 'Forerunner 235L',
315
318
  3145: 'Forerunner 245',
316
319
  3163: 'VivoActive 3M',
320
+ 3192: 'Speed Sensor 2 ',
317
321
  3218: 'VivoSmart 4',
318
322
  3224: 'VivoActive 4',
319
323
  3225: 'VivoActive 4',
@@ -362,12 +366,13 @@ export const ImporterFitGarminDeviceNames = {
362
366
  3558: 'Edge 130 Plus',
363
367
  3570: 'Edge 1030 Plus',
364
368
  3589: 'Forerunner 745',
369
+ 3596: 'Venu SQ',
365
370
  3600: 'Venu SQ',
366
371
  3615: 'Lily',
367
372
  3624: 'Marq Adventurer',
368
373
  3638: 'Enduro',
369
- 3648: 'Marq Adventurer',
370
374
  3639: 'Swim 2',
375
+ 3648: 'Marq Adventurer',
371
376
  3652: 'Forerunner 945',
372
377
  3703: 'Venu 2',
373
378
  3704: 'Venu 2S',
@@ -381,19 +386,73 @@ export const ImporterFitGarminDeviceNames = {
381
386
  3823: 'Approach S12',
382
387
  3872: 'Enduro',
383
388
  3837: 'Venu SQ',
389
+ 3843: 'Edge 1040',
384
390
  3850: 'Marq Golfer',
391
+ 3851: 'Venu 2 Plus',
392
+ 3865: 'Gnss',
385
393
  3869: 'Forerunner 55',
394
+ 3888: 'Instinct 2',
395
+ 3905: 'Fenix 7S',
396
+ 3906: 'Fenix 7',
397
+ 3907: 'Fenix 7X',
398
+ 3908: 'Fenix 7S',
399
+ 3909: 'Fenix 7',
400
+ 3910: 'Fenix 7X',
386
401
  3930: 'Descent MK 2S',
387
402
  3934: 'Approach S42',
403
+ 3943: 'Epix Gen 2',
404
+ 3944: 'Epix Gen 2',
388
405
  3949: 'Venu 2S',
389
406
  3950: 'Venu 2',
390
407
  3978: 'Forerunner 945',
391
408
  3986: 'Approach S12',
409
+ 3990: 'Forerunner 255 Music',
410
+ 3991: 'Forerunner 255 Music',
411
+ 3992: 'Forerunner 255',
412
+ 3993: 'Forerunner 255',
392
413
  4002: 'Approach S42',
414
+ 4005: 'Descent G1',
415
+ 4017: 'Venu 2 Plus',
416
+ 4024: 'Forerunner 955',
393
417
  4033: 'Forerunner 55',
418
+ 4061: 'Edge 540',
419
+ 4062: 'Edge 840',
420
+ 4063: 'Vivosmart 5',
421
+ 4071: 'Instinct 2',
422
+ 4115: 'Venu SQ 2',
423
+ 4116: 'Venu SQ 2MUSIC',
424
+ 4124: 'Marq Gen 2 Aviator',
425
+ 4125: 'D2 Air X10',
426
+ 4132: 'Descent G1',
427
+ 4135: 'Tactix 7',
428
+ 4155: 'Instinct Crossover',
429
+ 4169: 'Edge Explore 2',
430
+ 4222: 'Descent MK 3',
431
+ 4223: 'Descent MK 3I',
432
+ 4233: 'Approach S70',
433
+ 4257: 'Forerunner 265',
434
+ 4258: 'Forerunner 265',
435
+ 4260: 'Venu 3',
436
+ 4261: 'Venu 3S',
437
+ 4305: 'Edge 1040',
438
+ 4312: 'Epix Gen 2 Pro 42',
439
+ 4313: 'Epix Gen 2 Pro 47',
440
+ 4314: 'Epix Gen 2 Pro 51',
441
+ 4315: 'Forerunner 965',
442
+ 4341: 'Enduro 2',
443
+ 4374: 'Fenix 7S Pro Solar',
444
+ 4375: 'Fenix 7 Pro Solar',
445
+ 4376: 'Fenix 7X Pro Solar',
446
+ 4380: 'Lily 2',
447
+ 4394: 'Instinct 2X',
448
+ 4426: 'VivoActive 5',
449
+ 4442: 'Descent T2',
450
+ 4472: 'Marq Gen 2 Commander',
451
+ 4556: 'D2 H1 Pro',
394
452
  10014: 'Edge Remote',
395
453
  20533: 'Tacx Training App',
396
454
  20534: 'Tacx Training App',
455
+ 20565: 'Tacx Training App Catalyst',
397
456
  20119: 'Training Center',
398
457
  30045: 'Tacx Training App',
399
458
  30046: 'Tacx Training App',