@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.
- package/.github/workflows/test.yml +2 -2
- package/lib/cjs/activities/activity.types.d.ts +6 -3
- package/lib/cjs/activities/activity.types.js +9 -4
- package/lib/cjs/data/data.cycling-position.js +1 -1
- package/lib/cjs/data/data.feeling.js +1 -1
- package/lib/cjs/data/data.interface.js +1 -1
- package/lib/cjs/data/data.rpe.js +1 -1
- package/lib/cjs/data/data.store.export.spec.js +28 -14
- package/lib/cjs/data/data.store.js +1 -1
- package/lib/cjs/events/adapters/file-type.enum.js +1 -1
- package/lib/cjs/events/adapters/importers/fit/importer.fit.coros.device.names.js +2 -1
- package/lib/cjs/events/adapters/importers/fit/importer.fit.d.ts +2 -1
- package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.device.names.js +61 -2
- package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +867 -855
- package/lib/cjs/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +34 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.integration.spec.js +22 -8
- package/lib/cjs/events/adapters/importers/fit/importer.fit.js +24 -2
- package/lib/cjs/events/adapters/importers/fit/importer.fit.suunto.device.names.js +1 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +5 -1
- package/lib/cjs/events/adapters/importers/gpx/importer.gpx.integration.spec.js +22 -8
- package/lib/cjs/events/adapters/importers/gpx/importer.gpx.js +1 -1
- package/lib/cjs/events/adapters/importers/gpx/importer.gpx.spec.js +50 -0
- package/lib/cjs/events/adapters/importers/suunto/importer.suunto.activity.ids.js +1 -1
- package/lib/cjs/events/adapters/importers/suunto/importer.suunto.device.names.js +1 -0
- package/lib/cjs/events/adapters/importers/suunto/importer.suunto.integration.spec.js +22 -8
- package/lib/cjs/events/adapters/importers/tcx/importer.tcx.integration.spec.js +22 -8
- package/lib/cjs/events/utilities/activity.utilities.js +7 -7
- package/lib/cjs/events/utilities/grade-calculator/low-pass-filter.js +3 -3
- package/lib/cjs/events/utilities/helpers.d.ts +1 -1
- package/lib/cjs/events/utilities/helpers.js +19 -19
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/cjs/laps/lap.types.js +1 -1
- package/lib/cjs/meta-data/event-meta-data.interface.d.ts +4 -4
- package/lib/cjs/meta-data/event-meta-data.interface.js +2 -2
- package/lib/cjs/meta-data/meta-data.d.ts +4 -4
- package/lib/cjs/meta-data/meta-data.js +4 -4
- package/lib/cjs/meta-data/meta-data.json.interface.d.ts +1 -1
- package/lib/cjs/privacy/privacy.class.interface.js +1 -1
- package/lib/cjs/specs/activities-parsing.integration.spec.js +75 -61
- package/lib/cjs/specs/strava-streams-compliance.spec.js +22 -8
- package/lib/cjs/streams/compressed.stream.interface.js +2 -2
- package/lib/cjs/tiles/tile.settings.interface.js +5 -5
- package/lib/cjs/users/settings/dashboard/user.dashboard.settings.interface.js +1 -1
- package/lib/cjs/users/settings/user.app.settings.interface.js +1 -1
- package/lib/cjs/users/settings/user.chart.settings.interface.js +3 -3
- package/lib/cjs/users/settings/user.map.settings.interface.js +2 -2
- package/lib/cjs/users/settings/user.unit.settings.interface.js +9 -9
- package/lib/esm/activities/activity.types.d.ts +6 -3
- package/lib/esm/activities/activity.types.js +7 -2
- package/lib/esm/data/data.store.export.spec.js +6 -6
- package/lib/esm/data/data.store.js +1 -1
- package/lib/esm/events/adapters/importers/fit/importer.fit.coros.device.names.js +2 -1
- package/lib/esm/events/adapters/importers/fit/importer.fit.d.ts +2 -1
- package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.device.names.js +61 -2
- package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.data.js +867 -855
- package/lib/esm/events/adapters/importers/fit/importer.fit.garmin.profile.mapper.spec.js +32 -0
- package/lib/esm/events/adapters/importers/fit/importer.fit.js +24 -2
- package/lib/esm/events/adapters/importers/fit/importer.fit.suunto.device.names.js +1 -0
- package/lib/esm/events/adapters/importers/fit/importer.fit.wahoo.device.names.js +5 -1
- package/lib/esm/events/adapters/importers/gpx/importer.gpx.js +1 -1
- package/lib/esm/events/adapters/importers/gpx/importer.gpx.spec.js +17 -0
- package/lib/esm/events/adapters/importers/suunto/importer.suunto.device.names.js +1 -0
- package/lib/esm/events/utilities/activity.utilities.js +7 -7
- package/lib/esm/events/utilities/grade-calculator/low-pass-filter.js +3 -3
- package/lib/esm/events/utilities/helpers.d.ts +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/meta-data/event-meta-data.interface.d.ts +4 -4
- package/lib/esm/meta-data/event-meta-data.interface.js +1 -1
- package/lib/esm/meta-data/meta-data.d.ts +4 -4
- package/lib/esm/meta-data/meta-data.js +2 -2
- package/lib/esm/meta-data/meta-data.json.interface.d.ts +1 -1
- package/lib/esm/specs/activities-parsing.integration.spec.js +53 -53
- package/package.json +21 -21
- package/.editorconfig +0 -14
- package/.eslintignore +0 -4
- package/.eslintrc.js +0 -9
- package/.prettierignore +0 -24
- package/.prettierrc.json +0 -12
- package/.vscode/launch.json +0 -49
- package/.vscode/tasks.json +0 -34
- package/CODE_OF_CONDUCT.md +0 -76
- package/jest.config.js +0 -23
- package/lib/cjs/events/adapters/importers/fit/importer.fit.oom.spec.js +0 -60
- package/lib/cjs/package.json +0 -1
- package/lib/cjs/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
- package/lib/cjs/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
- package/lib/cjs/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
- package/lib/cjs/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
- package/lib/cjs/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
- package/lib/cjs/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
- package/lib/cjs/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
- package/lib/cjs/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
- package/lib/cjs/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
- package/lib/cjs/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
- package/lib/esm/events/adapters/importers/fit/importer.fit.oom.spec.js +0 -39
- package/lib/esm/specs/fixtures/streams/strava/rides/3171472783.json +0 -52534
- package/lib/esm/specs/fixtures/streams/strava/rides/3171487458.json +0 -78818
- package/lib/esm/specs/fixtures/streams/strava/rides/343080886.json +0 -105090
- package/lib/esm/specs/fixtures/streams/strava/rides/5910143591.json +0 -110711
- package/lib/esm/specs/fixtures/streams/strava/runs/2451375851.json +0 -74846
- package/lib/esm/specs/fixtures/streams/strava/runs/2709634581.json +0 -66817
- package/lib/esm/specs/fixtures/streams/strava/runs/3156040843.json +0 -17594
- package/lib/esm/specs/fixtures/streams/strava/runs/3182900697.json +0 -17322
- package/lib/esm/specs/fixtures/streams/strava/runs/3183465494.json +0 -20463
- package/lib/esm/specs/fixtures/streams/strava/runs/3183490558.json +0 -58202
- package/reproduce_oom.ts +0 -35
- package/tsconfig.cjs.json +0 -7
- package/tsconfig.esm.json +0 -8
- package/tsconfig.lib.json +0 -8
- /package/lib/cjs/events/adapters/importers/fit/{importer.fit.oom.spec.d.ts → importer.fit.garmin.profile.mapper.spec.d.ts} +0 -0
- /package/lib/esm/events/adapters/importers/fit/{importer.fit.oom.spec.d.ts → importer.fit.garmin.profile.mapper.spec.d.ts} +0 -0
|
@@ -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
|
/**
|
|
@@ -234,7 +234,12 @@ var ActivityTypes;
|
|
|
234
234
|
ActivityTypes["cycling_cyclocross"] = "Mountain Biking";
|
|
235
235
|
ActivityTypes["mountain"] = "Mountain Biking";
|
|
236
236
|
ActivityTypes["Mountain biking"] = "Mountain Biking";
|
|
237
|
+
// Enduro
|
|
238
|
+
ActivityTypes["cycling_mountain_enduro"] = "Enduro MTB";
|
|
239
|
+
ActivityTypes["Enduro MTB"] = "Enduro MTB";
|
|
240
|
+
// Downhill
|
|
237
241
|
ActivityTypes["cycling_downhill"] = "Downhill Cycling";
|
|
242
|
+
ActivityTypes["cycling_mountain_downhill"] = "Downhill Cycling";
|
|
238
243
|
ActivityTypes["DownhillCycling"] = "Downhill Cycling";
|
|
239
244
|
ActivityTypes["Downhill Cycling"] = "Downhill Cycling";
|
|
240
245
|
/**
|
|
@@ -876,7 +881,7 @@ var ActivityTypes;
|
|
|
876
881
|
ActivityTypes["Workout"] = "Workout";
|
|
877
882
|
ActivityTypes["generic_match"] = "Match";
|
|
878
883
|
ActivityTypes["Match"] = "Match";
|
|
879
|
-
})(ActivityTypes
|
|
884
|
+
})(ActivityTypes || (exports.ActivityTypes = ActivityTypes = {}));
|
|
880
885
|
var ActivityTypeGroups;
|
|
881
886
|
(function (ActivityTypeGroups) {
|
|
882
887
|
ActivityTypeGroups["Running"] = "Running";
|
|
@@ -897,7 +902,7 @@ var ActivityTypeGroups;
|
|
|
897
902
|
ActivityTypeGroups["Team Racket"] = "Team Racket";
|
|
898
903
|
ActivityTypeGroups["TeamRacket"] = "Team Racket";
|
|
899
904
|
ActivityTypeGroups["Unspecified"] = "Unspecified";
|
|
900
|
-
})(ActivityTypeGroups
|
|
905
|
+
})(ActivityTypeGroups || (exports.ActivityTypeGroups = ActivityTypeGroups = {}));
|
|
901
906
|
class ActivityTypesGroupMapping {
|
|
902
907
|
}
|
|
903
908
|
exports.ActivityTypesGroupMapping = ActivityTypesGroupMapping;
|
|
@@ -1021,8 +1026,8 @@ exports.ActivityTypesMoving = ActivityTypesMoving;
|
|
|
1021
1026
|
* Holds moving speed threshold in m/s per sport group
|
|
1022
1027
|
*/
|
|
1023
1028
|
ActivityTypesMoving.SPORTS_MOVING_SPEED_THRESHOLD_MAP = new Map([
|
|
1024
|
-
[ActivityTypeGroups.Running, 1.5 / 3.6],
|
|
1025
|
-
[ActivityTypeGroups.Cycling, 4 / 3.6],
|
|
1029
|
+
[ActivityTypeGroups.Running, 1.5 / 3.6], // kph to m/s
|
|
1030
|
+
[ActivityTypeGroups.Cycling, 4 / 3.6], // kph to m/s
|
|
1026
1031
|
[ActivityTypeGroups.Swimming, 0.3] // 30 cm/s
|
|
1027
1032
|
]);
|
|
1028
1033
|
ActivityTypesMoving.DEFAULT_MOVING_SPEED_THRESHOLD = 0.3; // m/s
|
|
@@ -11,7 +11,7 @@ var RiderPosition;
|
|
|
11
11
|
RiderPosition[RiderPosition["STANDING"] = 1] = "STANDING";
|
|
12
12
|
RiderPosition[RiderPosition["TRANSITION_TO_SEATED"] = 2] = "TRANSITION_TO_SEATED";
|
|
13
13
|
RiderPosition[RiderPosition["TRANSITION_TO_STANDING"] = 3] = "TRANSITION_TO_STANDING";
|
|
14
|
-
})(RiderPosition
|
|
14
|
+
})(RiderPosition || (exports.RiderPosition = RiderPosition = {}));
|
|
15
15
|
class DataCyclingPosition extends data_cycling_dynamics_1.DataCyclingDynamics {
|
|
16
16
|
}
|
|
17
17
|
exports.DataCyclingPosition = DataCyclingPosition;
|
|
@@ -16,4 +16,4 @@ var Feelings;
|
|
|
16
16
|
Feelings[Feelings["Good"] = 3] = "Good";
|
|
17
17
|
Feelings[Feelings["Very Good"] = 4] = "Very Good";
|
|
18
18
|
Feelings[Feelings["Excellent"] = 5] = "Excellent";
|
|
19
|
-
})(Feelings
|
|
19
|
+
})(Feelings || (exports.Feelings = Feelings = {}));
|
|
@@ -5,4 +5,4 @@ var UnitSystem;
|
|
|
5
5
|
(function (UnitSystem) {
|
|
6
6
|
UnitSystem[UnitSystem["Metric"] = 0] = "Metric";
|
|
7
7
|
UnitSystem[UnitSystem["Imperial"] = 1] = "Imperial";
|
|
8
|
-
})(UnitSystem
|
|
8
|
+
})(UnitSystem || (exports.UnitSystem = UnitSystem = {}));
|
package/lib/cjs/data/data.rpe.js
CHANGED
|
@@ -24,4 +24,4 @@ var RPEBorgCR10SCale;
|
|
|
24
24
|
RPEBorgCR10SCale[RPEBorgCR10SCale["Very severe"] = 8] = "Very severe";
|
|
25
25
|
RPEBorgCR10SCale[RPEBorgCR10SCale["Extreme"] = 9] = "Extreme";
|
|
26
26
|
RPEBorgCR10SCale[RPEBorgCR10SCale["Maximal"] = 10] = "Maximal";
|
|
27
|
-
})(RPEBorgCR10SCale
|
|
27
|
+
})(RPEBorgCR10SCale || (exports.RPEBorgCR10SCale = RPEBorgCR10SCale = {}));
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
21
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
36
|
const fs = __importStar(require("fs"));
|
|
23
37
|
const path = __importStar(require("path"));
|
|
@@ -34,12 +48,12 @@ describe('DataStore Export Verification', () => {
|
|
|
34
48
|
'data.json.interface.ts',
|
|
35
49
|
'data.position.interface.ts',
|
|
36
50
|
'data.spec.ts',
|
|
37
|
-
'data.ts',
|
|
38
|
-
'data.string.ts',
|
|
39
|
-
'data.number.ts',
|
|
40
|
-
'data.boolean.ts',
|
|
41
|
-
'data.percent.ts',
|
|
42
|
-
'data.array.ts',
|
|
51
|
+
'data.ts', // Base class
|
|
52
|
+
'data.string.ts', // Base class
|
|
53
|
+
'data.number.ts', // Base class
|
|
54
|
+
'data.boolean.ts', // Base class
|
|
55
|
+
'data.percent.ts', // Base class or abstract?
|
|
56
|
+
'data.array.ts', // Base class
|
|
43
57
|
'data.balance.ts' // interface/base
|
|
44
58
|
];
|
|
45
59
|
files.forEach(file => {
|
|
@@ -363,7 +363,7 @@ exports.DataStore = {
|
|
|
363
363
|
DataVerticalSpeedMinMilesPerHour: data_vertical_speed_min_1.DataVerticalSpeedMinMilesPerHour,
|
|
364
364
|
DataIBI: data_ibi_1.DataIBI,
|
|
365
365
|
DataSteps: data_steps_1.DataSteps,
|
|
366
|
-
DataStepsOld: data_steps_old_1.DataStepsOld,
|
|
366
|
+
DataStepsOld: data_steps_old_1.DataStepsOld, // @todo find way to make this easy to migrate for projects that persist data based on types
|
|
367
367
|
DataStrydAltitude: // @todo find way to make this easy to migrate for projects that persist data based on types
|
|
368
368
|
data_stryd_altitude_1.DataStrydAltitude,
|
|
369
369
|
DataStrydSpeed: data_stryd_speed_1.DataStrydSpeed,
|
|
@@ -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
|
|
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
|
|
@@ -119,6 +119,7 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
119
119
|
1328: 'Forerunner 910XT',
|
|
120
120
|
1333: 'Edge 800',
|
|
121
121
|
1334: 'Edge 800',
|
|
122
|
+
1341: 'Alf 04',
|
|
122
123
|
1345: 'Forerunner 610',
|
|
123
124
|
1360: 'Forerunner 210',
|
|
124
125
|
1386: 'Edge 800',
|
|
@@ -210,7 +211,7 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
210
211
|
2290: 'Edge 20',
|
|
211
212
|
2292: 'Approach X40',
|
|
212
213
|
2293: 'Fenix 3',
|
|
213
|
-
2294: 'VivoSmart',
|
|
214
|
+
2294: 'VivoSmart EM',
|
|
214
215
|
2310: 'Forerunner 630',
|
|
215
216
|
2311: 'Forerunner 630',
|
|
216
217
|
2313: 'Forerunner 230',
|
|
@@ -272,6 +273,7 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
272
273
|
2769: 'Foretrex 601 701',
|
|
273
274
|
2772: 'VivoMove HR',
|
|
274
275
|
2713: 'Edge 1030',
|
|
276
|
+
2727: 'Forerunner 35',
|
|
275
277
|
2796: 'Fenix 5',
|
|
276
278
|
2797: 'Fenix 5S',
|
|
277
279
|
2798: 'Fenix 5X',
|
|
@@ -314,9 +316,11 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
314
316
|
3134: 'Fenix 5S Plus',
|
|
315
317
|
3135: 'Fenix 5X Plus',
|
|
316
318
|
3142: 'Edge 520 Plus',
|
|
319
|
+
3143: 'Descent T1',
|
|
317
320
|
3144: 'Forerunner 235L',
|
|
318
321
|
3145: 'Forerunner 245',
|
|
319
322
|
3163: 'VivoActive 3M',
|
|
323
|
+
3192: 'Speed Sensor 2 ',
|
|
320
324
|
3218: 'VivoSmart 4',
|
|
321
325
|
3224: 'VivoActive 4',
|
|
322
326
|
3225: 'VivoActive 4',
|
|
@@ -365,12 +369,13 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
365
369
|
3558: 'Edge 130 Plus',
|
|
366
370
|
3570: 'Edge 1030 Plus',
|
|
367
371
|
3589: 'Forerunner 745',
|
|
372
|
+
3596: 'Venu SQ',
|
|
368
373
|
3600: 'Venu SQ',
|
|
369
374
|
3615: 'Lily',
|
|
370
375
|
3624: 'Marq Adventurer',
|
|
371
376
|
3638: 'Enduro',
|
|
372
|
-
3648: 'Marq Adventurer',
|
|
373
377
|
3639: 'Swim 2',
|
|
378
|
+
3648: 'Marq Adventurer',
|
|
374
379
|
3652: 'Forerunner 945',
|
|
375
380
|
3703: 'Venu 2',
|
|
376
381
|
3704: 'Venu 2S',
|
|
@@ -384,19 +389,73 @@ exports.ImporterFitGarminDeviceNames = {
|
|
|
384
389
|
3823: 'Approach S12',
|
|
385
390
|
3872: 'Enduro',
|
|
386
391
|
3837: 'Venu SQ',
|
|
392
|
+
3843: 'Edge 1040',
|
|
387
393
|
3850: 'Marq Golfer',
|
|
394
|
+
3851: 'Venu 2 Plus',
|
|
395
|
+
3865: 'Gnss',
|
|
388
396
|
3869: 'Forerunner 55',
|
|
397
|
+
3888: 'Instinct 2',
|
|
398
|
+
3905: 'Fenix 7S',
|
|
399
|
+
3906: 'Fenix 7',
|
|
400
|
+
3907: 'Fenix 7X',
|
|
401
|
+
3908: 'Fenix 7S',
|
|
402
|
+
3909: 'Fenix 7',
|
|
403
|
+
3910: 'Fenix 7X',
|
|
389
404
|
3930: 'Descent MK 2S',
|
|
390
405
|
3934: 'Approach S42',
|
|
406
|
+
3943: 'Epix Gen 2',
|
|
407
|
+
3944: 'Epix Gen 2',
|
|
391
408
|
3949: 'Venu 2S',
|
|
392
409
|
3950: 'Venu 2',
|
|
393
410
|
3978: 'Forerunner 945',
|
|
394
411
|
3986: 'Approach S12',
|
|
412
|
+
3990: 'Forerunner 255 Music',
|
|
413
|
+
3991: 'Forerunner 255 Music',
|
|
414
|
+
3992: 'Forerunner 255',
|
|
415
|
+
3993: 'Forerunner 255',
|
|
395
416
|
4002: 'Approach S42',
|
|
417
|
+
4005: 'Descent G1',
|
|
418
|
+
4017: 'Venu 2 Plus',
|
|
419
|
+
4024: 'Forerunner 955',
|
|
396
420
|
4033: 'Forerunner 55',
|
|
421
|
+
4061: 'Edge 540',
|
|
422
|
+
4062: 'Edge 840',
|
|
423
|
+
4063: 'Vivosmart 5',
|
|
424
|
+
4071: 'Instinct 2',
|
|
425
|
+
4115: 'Venu SQ 2',
|
|
426
|
+
4116: 'Venu SQ 2MUSIC',
|
|
427
|
+
4124: 'Marq Gen 2 Aviator',
|
|
428
|
+
4125: 'D2 Air X10',
|
|
429
|
+
4132: 'Descent G1',
|
|
430
|
+
4135: 'Tactix 7',
|
|
431
|
+
4155: 'Instinct Crossover',
|
|
432
|
+
4169: 'Edge Explore 2',
|
|
433
|
+
4222: 'Descent MK 3',
|
|
434
|
+
4223: 'Descent MK 3I',
|
|
435
|
+
4233: 'Approach S70',
|
|
436
|
+
4257: 'Forerunner 265',
|
|
437
|
+
4258: 'Forerunner 265',
|
|
438
|
+
4260: 'Venu 3',
|
|
439
|
+
4261: 'Venu 3S',
|
|
440
|
+
4305: 'Edge 1040',
|
|
441
|
+
4312: 'Epix Gen 2 Pro 42',
|
|
442
|
+
4313: 'Epix Gen 2 Pro 47',
|
|
443
|
+
4314: 'Epix Gen 2 Pro 51',
|
|
444
|
+
4315: 'Forerunner 965',
|
|
445
|
+
4341: 'Enduro 2',
|
|
446
|
+
4374: 'Fenix 7S Pro Solar',
|
|
447
|
+
4375: 'Fenix 7 Pro Solar',
|
|
448
|
+
4376: 'Fenix 7X Pro Solar',
|
|
449
|
+
4380: 'Lily 2',
|
|
450
|
+
4394: 'Instinct 2X',
|
|
451
|
+
4426: 'VivoActive 5',
|
|
452
|
+
4442: 'Descent T2',
|
|
453
|
+
4472: 'Marq Gen 2 Commander',
|
|
454
|
+
4556: 'D2 H1 Pro',
|
|
397
455
|
10014: 'Edge Remote',
|
|
398
456
|
20533: 'Tacx Training App',
|
|
399
457
|
20534: 'Tacx Training App',
|
|
458
|
+
20565: 'Tacx Training App Catalyst',
|
|
400
459
|
20119: 'Training Center',
|
|
401
460
|
30045: 'Tacx Training App',
|
|
402
461
|
30046: 'Tacx Training App',
|