@sports-alliance/sports-lib 7.0.0 → 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.d.ts +1 -0
- 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.js +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.d.ts +1 -0
- 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/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/debug-fit-import.js +0 -10
- package/jest.config.js +0 -23
- 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/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/test_output.log +0 -162
- package/test_output_2.log +0 -168
- package/test_output_3.log +0 -168
- package/tsconfig.cjs.json +0 -7
- package/tsconfig.esm.json +0 -8
- package/tsconfig.lib.json +0 -8
|
@@ -140,12 +140,12 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
140
140
|
expect(activity.hasStreamData(DataCadence.type)).toBeTruthy();
|
|
141
141
|
expect(activity.hasStreamData(DataDistance.type)).toBeTruthy();
|
|
142
142
|
SpecUtils.assertNearEqualTime(SpecUtils.speedToSwimPace(activity.getStat(DataSpeedAvg.type).getValue()), '01:50');
|
|
143
|
-
SpecUtils.assertNearEqualTime(movingTime, '
|
|
143
|
+
SpecUtils.assertNearEqualTime(movingTime, '44:06');
|
|
144
144
|
SpecUtils.assertNearEqualTime(timerTime, '01:06:03');
|
|
145
145
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:06:23');
|
|
146
146
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
147
147
|
done();
|
|
148
|
-
});
|
|
148
|
+
}).catch((e) => done(e));
|
|
149
149
|
});
|
|
150
150
|
it('should parse swimming pool FIT file (2)', done => {
|
|
151
151
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6021532030 OR https://www.strava.com/activities/5258304128
|
|
@@ -176,7 +176,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
176
176
|
SpecUtils.assertNearEqualTime(elapsedTime, '23:31');
|
|
177
177
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
178
178
|
done();
|
|
179
|
-
});
|
|
179
|
+
}).catch((e) => done(e));
|
|
180
180
|
});
|
|
181
181
|
it('should parse swimming pool FIT file (3)', done => {
|
|
182
182
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6860712481 OR https://www.strava.com/activities/5376106733
|
|
@@ -204,12 +204,12 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
204
204
|
const timerTime = activity.getStat(DataTimerTime.type).getValue();
|
|
205
205
|
const pauseTime = activity.getStat(DataPause.type).getValue();
|
|
206
206
|
const elapsedTime = activity.getDuration().getValue();
|
|
207
|
-
SpecUtils.assertNearEqualTime(movingTime, '
|
|
207
|
+
SpecUtils.assertNearEqualTime(movingTime, '41:25');
|
|
208
208
|
SpecUtils.assertNearEqualTime(timerTime, '47:27');
|
|
209
209
|
SpecUtils.assertNearEqualTime(elapsedTime, '49:43');
|
|
210
210
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
211
211
|
done();
|
|
212
|
-
});
|
|
212
|
+
}).catch((e) => done(e));
|
|
213
213
|
});
|
|
214
214
|
it('should parse swimming pool FIT file (4)', done => {
|
|
215
215
|
// Given FIT Source: https://connect.garmin.com/modern/activity/7617306288 OR https://www.strava.com/activities/6076695527
|
|
@@ -225,7 +225,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
225
225
|
SpecUtils.assertNearEqualTime(SpecUtils.speedToSwimPace(activity.getStat(DataSpeedAvg.type).getValue()), '01:54');
|
|
226
226
|
expect(activity.getLaps().length).toEqual(6);
|
|
227
227
|
done();
|
|
228
|
-
});
|
|
228
|
+
}).catch((e) => done(e));
|
|
229
229
|
});
|
|
230
230
|
it('should parse swimming open water FIT file (1)', done => {
|
|
231
231
|
// Given https://connect.garmin.com/modern/activity/6788312639/1 OR https://www.strava.com/activities/5305763421
|
|
@@ -256,7 +256,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
256
256
|
SpecUtils.assertNearEqualTime(elapsedTime, '31:06');
|
|
257
257
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
258
258
|
done();
|
|
259
|
-
});
|
|
259
|
+
}).catch((e) => done(e));
|
|
260
260
|
});
|
|
261
261
|
});
|
|
262
262
|
describe('TCX', () => {
|
|
@@ -290,7 +290,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
290
290
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:06:23');
|
|
291
291
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime);
|
|
292
292
|
done();
|
|
293
|
-
});
|
|
293
|
+
}).catch((e) => done(e));
|
|
294
294
|
});
|
|
295
295
|
it('should parse swimming pool TCX file (2)', done => {
|
|
296
296
|
// Given TCX Source: https://connect.garmin.com/modern/activity/6861441616 or https://www.strava.com/activities/5378130384
|
|
@@ -318,7 +318,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
318
318
|
SpecUtils.assertNearEqualTime(elapsedTime, '47:27');
|
|
319
319
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
320
320
|
done();
|
|
321
|
-
});
|
|
321
|
+
}).catch((e) => done(e));
|
|
322
322
|
});
|
|
323
323
|
});
|
|
324
324
|
describe('GPX', () => {
|
|
@@ -353,7 +353,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
353
353
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:01:29');
|
|
354
354
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
355
355
|
done();
|
|
356
|
-
});
|
|
356
|
+
}).catch((e) => done(e));
|
|
357
357
|
});
|
|
358
358
|
it('should parse swimming open water GPX file (2)', done => {
|
|
359
359
|
// Given GPX Source: https://connect.garmin.com/modern/activity/6867446668 OR https://www.strava.com/activities/5382426315
|
|
@@ -382,7 +382,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
382
382
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:14:47');
|
|
383
383
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
384
384
|
done();
|
|
385
|
-
});
|
|
385
|
+
}).catch((e) => done(e));
|
|
386
386
|
});
|
|
387
387
|
});
|
|
388
388
|
});
|
|
@@ -418,7 +418,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
418
418
|
SpecUtils.assertNearEqualTime(elapsedTime, '47:04');
|
|
419
419
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
420
420
|
done();
|
|
421
|
-
});
|
|
421
|
+
}).catch((e) => done(e));
|
|
422
422
|
});
|
|
423
423
|
it('should parse running FIT file (2)', done => {
|
|
424
424
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6782987395 OR https://www.strava.com/activities/2451375851
|
|
@@ -451,7 +451,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
451
451
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:23:09');
|
|
452
452
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
453
453
|
done();
|
|
454
|
-
});
|
|
454
|
+
}).catch((e) => done(e));
|
|
455
455
|
});
|
|
456
456
|
it('should parse running FIT file (Suunto export) (3)', done => {
|
|
457
457
|
// Given FIT Source (Suunto export): https://connect.garmin.com/modern/activity/6909950168 OR https://www.strava.com/activities/5423646653
|
|
@@ -485,7 +485,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
485
485
|
SpecUtils.assertNearEqualTime(elapsedTime, '36:36');
|
|
486
486
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
487
487
|
done();
|
|
488
|
-
});
|
|
488
|
+
}).catch((e) => done(e));
|
|
489
489
|
});
|
|
490
490
|
it('should parse running FIT file (Suunto export) (4)', done => {
|
|
491
491
|
// Given FIT Source (Suunto export): https://connect.garmin.com/modern/activity/6910052863 OR https://www.strava.com/activities/5423660493
|
|
@@ -517,7 +517,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
517
517
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:40:02');
|
|
518
518
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
519
519
|
done();
|
|
520
|
-
});
|
|
520
|
+
}).catch((e) => done(e));
|
|
521
521
|
});
|
|
522
522
|
it('should parse running FIT file (Suunto export) (5)', done => {
|
|
523
523
|
// Given FIT Source (Suunto export): https://connect.garmin.com/modern/activity/6914448270 OR https://www.strava.com/activities/5427988571
|
|
@@ -547,7 +547,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
547
547
|
SpecUtils.assertNearEqualTime(elapsedTime, '05:40:19');
|
|
548
548
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
549
549
|
done();
|
|
550
|
-
});
|
|
550
|
+
}).catch((e) => done(e));
|
|
551
551
|
});
|
|
552
552
|
it('should parse running FIT file (Suunto export) (6)', done => {
|
|
553
553
|
// Given FIT Source (Suunto export): https://connect.garmin.com/modern/activity/6914538454 OR https://www.strava.com/activities/5428064152
|
|
@@ -577,7 +577,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
577
577
|
SpecUtils.assertNearEqualTime(elapsedTime, '21:04');
|
|
578
578
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
579
579
|
done();
|
|
580
|
-
});
|
|
580
|
+
}).catch((e) => done(e));
|
|
581
581
|
});
|
|
582
582
|
it('should parse running FIT file (Coros export) (7)', done => {
|
|
583
583
|
// Given FIT Source (Coros export): https://connect.garmin.com/modern/activity/6916663933 OR https://www.strava.com/activities/5429996380
|
|
@@ -618,7 +618,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
618
618
|
SpecUtils.assertNearEqualTime(elapsedTime, '48:42');
|
|
619
619
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
620
620
|
done();
|
|
621
|
-
});
|
|
621
|
+
}).catch((e) => done(e));
|
|
622
622
|
});
|
|
623
623
|
it('should parse running FIT file (Coros export) (8)', done => {
|
|
624
624
|
// Given FIT Source (Coros export): https://connect.garmin.com/modern/activity/6916728382 OR https://www.strava.com/activities/5430055225
|
|
@@ -651,7 +651,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
651
651
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:41:39');
|
|
652
652
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
653
653
|
done();
|
|
654
|
-
});
|
|
654
|
+
}).catch((e) => done(e));
|
|
655
655
|
});
|
|
656
656
|
it('should parse running treadmill FIT file (1)', done => {
|
|
657
657
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6860622783 or https://www.strava.com/activities/5375834427
|
|
@@ -690,7 +690,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
690
690
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:02:44');
|
|
691
691
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
692
692
|
done();
|
|
693
|
-
});
|
|
693
|
+
}).catch((e) => done(e));
|
|
694
694
|
});
|
|
695
695
|
});
|
|
696
696
|
describe('TCX', () => {
|
|
@@ -723,7 +723,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
723
723
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:07:47');
|
|
724
724
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
725
725
|
done();
|
|
726
|
-
});
|
|
726
|
+
}).catch((e) => done(e));
|
|
727
727
|
});
|
|
728
728
|
it('should parse running TCX file (2)', done => {
|
|
729
729
|
// Given TCX Source: https://connect.garmin.com/modern/activity/6851149716 OR https://www.strava.com/activities/5366592367
|
|
@@ -757,7 +757,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
757
757
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:23:09');
|
|
758
758
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
759
759
|
done();
|
|
760
|
-
});
|
|
760
|
+
}).catch((e) => done(e));
|
|
761
761
|
});
|
|
762
762
|
it('should parse running TCX file (3)', done => {
|
|
763
763
|
// Given TCX Source: https://connect.garmin.com/modern/activity/6860622916 or https://www.strava.com/activities/5375754773
|
|
@@ -789,7 +789,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
789
789
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:02:17');
|
|
790
790
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
791
791
|
done();
|
|
792
|
-
});
|
|
792
|
+
}).catch((e) => done(e));
|
|
793
793
|
});
|
|
794
794
|
it('should parse running TCX file (4)', done => {
|
|
795
795
|
// Given TCX Source: (garmin connect upload impossible) or https://www.strava.com/activities/6281425038
|
|
@@ -814,7 +814,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
814
814
|
SpecUtils.assertNearEqualTime(elapsedTime, '36:02');
|
|
815
815
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
816
816
|
done();
|
|
817
|
-
});
|
|
817
|
+
}).catch((e) => done(e));
|
|
818
818
|
});
|
|
819
819
|
it('should parse running treadmill TCX file (3)', done => {
|
|
820
820
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6860622783 or https://www.strava.com/activities/5375834427
|
|
@@ -842,7 +842,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
842
842
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:02:44');
|
|
843
843
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
844
844
|
done();
|
|
845
|
-
});
|
|
845
|
+
}).catch((e) => done(e));
|
|
846
846
|
});
|
|
847
847
|
});
|
|
848
848
|
describe('GPX', () => {
|
|
@@ -876,7 +876,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
876
876
|
SpecUtils.assertNearEqualTime(elapsedTime, '47:04');
|
|
877
877
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
878
878
|
done();
|
|
879
|
-
});
|
|
879
|
+
}).catch((e) => done(e));
|
|
880
880
|
});
|
|
881
881
|
it('should parse running GPX file (2)', done => {
|
|
882
882
|
// Given GPX Source: https://connect.garmin.com/modern/activity/6870566668 OR https://www.strava.com/activities/5385561485
|
|
@@ -907,7 +907,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
907
907
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:23:09');
|
|
908
908
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
909
909
|
done();
|
|
910
|
-
});
|
|
910
|
+
}).catch((e) => done(e));
|
|
911
911
|
});
|
|
912
912
|
it('should parse running GPX file (3)', done => {
|
|
913
913
|
// Given Recorded with "Strava Android App" => https://connect.garmin.com/modern/activity/1681613317 OR https://www.strava.com/activities/906581465
|
|
@@ -939,7 +939,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
939
939
|
SpecUtils.assertNearEqualTime(elapsedTime, '32:38');
|
|
940
940
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
941
941
|
done();
|
|
942
|
-
});
|
|
942
|
+
}).catch((e) => done(e));
|
|
943
943
|
});
|
|
944
944
|
it('should parse running GPX file (4)', done => {
|
|
945
945
|
// Given Recorded with "MyTracks" => https://connect.garmin.com/modern/activity/6909258631 OR https://www.strava.com/activities/5422847134
|
|
@@ -964,7 +964,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
964
964
|
SpecUtils.assertNearEqualTime(elapsedTime, '06:30:22');
|
|
965
965
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
966
966
|
done();
|
|
967
|
-
});
|
|
967
|
+
}).catch((e) => done(e));
|
|
968
968
|
});
|
|
969
969
|
it('should parse running GPX file (5)', done => {
|
|
970
970
|
// Given https://connect.garmin.com/modern/activity/6048438275 OR https://www.strava.com/activities/3497177564
|
|
@@ -978,7 +978,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
978
978
|
expect(activity.type).toEqual(ActivityTypes.run);
|
|
979
979
|
expect(activity.hasPowerMeter()).toBeFalsy();
|
|
980
980
|
expect(activity.isTrainer()).toBeFalsy();
|
|
981
|
-
|
|
981
|
+
SpecUtils.assertNearEqual(activity.getStat(DataDistance.type).getValue(), 16771.3, 1, 1);
|
|
982
982
|
expect(activity.getStat(DataAscent.type).getValue()).toBeCloseTo(579, 0);
|
|
983
983
|
expect(activity.getStat(DataCadenceAvg.type).getValue()).toEqual(86);
|
|
984
984
|
expect(activity.getStat(DataCadenceMax.type).getValue()).toEqual(123);
|
|
@@ -995,7 +995,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
995
995
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:22:50');
|
|
996
996
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
997
997
|
done();
|
|
998
|
-
});
|
|
998
|
+
}).catch((e) => done(e));
|
|
999
999
|
});
|
|
1000
1000
|
it('should parse running GPX file (6)', done => {
|
|
1001
1001
|
// Given https://www.strava.com/activities/3632493456 or https://connect.garmin.com/modern/activity/6037744996
|
|
@@ -1009,7 +1009,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1009
1009
|
expect(activity.type).toEqual(ActivityTypes.run);
|
|
1010
1010
|
expect(activity.hasPowerMeter()).toBeFalsy();
|
|
1011
1011
|
expect(activity.isTrainer()).toBeFalsy();
|
|
1012
|
-
|
|
1012
|
+
SpecUtils.assertNearEqual(activity.getStat(DataDistance.type).getValue(), 5115.1, 1, 1);
|
|
1013
1013
|
expect(activity.getStat(DataAscent.type).getValue()).toBeCloseTo(516, 0);
|
|
1014
1014
|
expect(activity.getStat(DataCadenceAvg.type).getValue()).toEqual(68);
|
|
1015
1015
|
expect(activity.getStat(DataCadenceMax.type).getValue()).toEqual(124);
|
|
@@ -1025,7 +1025,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1025
1025
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:07:19');
|
|
1026
1026
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1027
1027
|
done();
|
|
1028
|
-
});
|
|
1028
|
+
}).catch((e) => done(e));
|
|
1029
1029
|
});
|
|
1030
1030
|
});
|
|
1031
1031
|
});
|
|
@@ -1081,7 +1081,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1081
1081
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:04:36');
|
|
1082
1082
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1083
1083
|
done();
|
|
1084
|
-
});
|
|
1084
|
+
}).catch((e) => done(e));
|
|
1085
1085
|
});
|
|
1086
1086
|
it('should parse cycling FIT file (2)', done => {
|
|
1087
1087
|
// Given FIT Source: https://connect.garmin.com/modern/activity/828989227 OR https://www.strava.com/activities/343080886
|
|
@@ -1113,7 +1113,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1113
1113
|
SpecUtils.assertNearEqualTime(elapsedTime, '06:07:08');
|
|
1114
1114
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1115
1115
|
done();
|
|
1116
|
-
});
|
|
1116
|
+
}).catch((e) => done(e));
|
|
1117
1117
|
});
|
|
1118
1118
|
it('should parse cycling FIT file (3)', done => {
|
|
1119
1119
|
// Given FIT Source: https://connect.garmin.com/modern/activity/614953343 OR https://www.strava.com/activities/208748758
|
|
@@ -1135,7 +1135,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1135
1135
|
SpecUtils.assertNearEqualTime(elapsedTime, '07:04:31');
|
|
1136
1136
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1137
1137
|
done();
|
|
1138
|
-
});
|
|
1138
|
+
}).catch((e) => done(e));
|
|
1139
1139
|
});
|
|
1140
1140
|
it('should parse cycling FIT file (4)', done => {
|
|
1141
1141
|
// Given FIT Source: https://connect.garmin.com/modern/activity/6783622686 OR https://www.strava.com/activities/5300988022
|
|
@@ -1156,7 +1156,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1156
1156
|
SpecUtils.assertNearEqualTime(elapsedTime, '07:26:55');
|
|
1157
1157
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1158
1158
|
done();
|
|
1159
|
-
});
|
|
1159
|
+
}).catch((e) => done(e));
|
|
1160
1160
|
});
|
|
1161
1161
|
it('should parse cycling FIT file (5)', done => {
|
|
1162
1162
|
// Given FIT Source: https://connect.garmin.com/modern/activity/7386755164 OR https://www.strava.com/activities/5952147686
|
|
@@ -1183,7 +1183,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1183
1183
|
SpecUtils.assertNearEqualTime(activity.getStat(DataCyclingStandingTime.type).getValue(), '17:53', 0);
|
|
1184
1184
|
SpecUtils.assertNearEqualTime(activity.getStat(DataCyclingSeatedTime.type).getValue(), '01:25:02', 0);
|
|
1185
1185
|
done();
|
|
1186
|
-
});
|
|
1186
|
+
}).catch((e) => done(e));
|
|
1187
1187
|
});
|
|
1188
1188
|
it('should parse cycling FIT file (6)', done => {
|
|
1189
1189
|
// Given FIT Source: https://connect.garmin.com/modern/activity/7445393868 OR https://www.strava.com/activities/5921768617
|
|
@@ -1207,7 +1207,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1207
1207
|
expect(activity.getStat(DataPowerTrainingStressScore.type).getValue()).toEqual(48.3);
|
|
1208
1208
|
expect(activity.getStat(DataPowerWork.type).getValue()).toEqual(417);
|
|
1209
1209
|
done();
|
|
1210
|
-
});
|
|
1210
|
+
}).catch((e) => done(e));
|
|
1211
1211
|
});
|
|
1212
1212
|
it('should parse cycling FIT file (7)', done => {
|
|
1213
1213
|
// Given FIT Source: https://connect.garmin.com/modern/activity/7432332116 OR https://www.strava.com/activities/5910143591
|
|
@@ -1233,7 +1233,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1233
1233
|
expect(activity.getSquashedStreamData(DataHeartRate.type).length).toEqual(expectedSamplesLength);
|
|
1234
1234
|
expect(activity.getSquashedStreamData(DataPower.type).length).toEqual(expectedSamplesLength);
|
|
1235
1235
|
done();
|
|
1236
|
-
});
|
|
1236
|
+
}).catch((e) => done(e));
|
|
1237
1237
|
});
|
|
1238
1238
|
it('should parse cycling FIT file (8)', done => {
|
|
1239
1239
|
// Given FIT Source: https://connect.garmin.com/modern/activity/7739869618 OR https://www.strava.com/activities/2380240532
|
|
@@ -1248,7 +1248,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1248
1248
|
expect(activity.creator.manufacturer).toEqual('wahoo_fitness');
|
|
1249
1249
|
expect(activity.creator.isRecognized).toBeTruthy();
|
|
1250
1250
|
done();
|
|
1251
|
-
});
|
|
1251
|
+
}).catch((e) => done(e));
|
|
1252
1252
|
});
|
|
1253
1253
|
it('should parse cycling FIT file (9)', done => {
|
|
1254
1254
|
// Given FIT Source: https://connect.garmin.com/modern/activity/5319808632 OR https://www.strava.com/activities/3849490840
|
|
@@ -1262,7 +1262,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1262
1262
|
expect(activity.startDate.toISOString()).toEqual('2020-07-26T15:28:41.000Z');
|
|
1263
1263
|
expect(activity.endDate.toISOString()).toEqual('2020-07-26T16:31:26.063Z');
|
|
1264
1264
|
done();
|
|
1265
|
-
});
|
|
1265
|
+
}).catch((e) => done(e));
|
|
1266
1266
|
});
|
|
1267
1267
|
it('should parse virtual cycling FIT file (1)', done => {
|
|
1268
1268
|
// Given FIT Source: https://connect.garmin.com/modern/activity/971150603 OR https://www.strava.com/activities/442080924
|
|
@@ -1311,7 +1311,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1311
1311
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:03:42');
|
|
1312
1312
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1313
1313
|
done();
|
|
1314
|
-
});
|
|
1314
|
+
}).catch((e) => done(e));
|
|
1315
1315
|
});
|
|
1316
1316
|
});
|
|
1317
1317
|
describe('TCX', () => {
|
|
@@ -1347,7 +1347,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1347
1347
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:04:36');
|
|
1348
1348
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1349
1349
|
done();
|
|
1350
|
-
});
|
|
1350
|
+
}).catch((e) => done(e));
|
|
1351
1351
|
});
|
|
1352
1352
|
it('should parse cycling TCX file (2)', done => {
|
|
1353
1353
|
// Given TCX Source: https://connect.garmin.com/modern/activity/6838497277 or https://www.strava.com/activities/5354278524
|
|
@@ -1381,7 +1381,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1381
1381
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:55:15');
|
|
1382
1382
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1383
1383
|
done();
|
|
1384
|
-
});
|
|
1384
|
+
}).catch((e) => done(e));
|
|
1385
1385
|
});
|
|
1386
1386
|
it('should parse cycling TCX file (3)', done => {
|
|
1387
1387
|
// Given TCX Source: https://connect.garmin.com/modern/activity/7555170032 or https://www.strava.com/activities/6020442882
|
|
@@ -1408,7 +1408,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1408
1408
|
expect(activity.getSquashedStreamData(DataHeartRate.type).length).toEqual(expectedSamplesLength);
|
|
1409
1409
|
expect(activity.getSquashedStreamData(DataPower.type).length).toEqual(expectedSamplesLength);
|
|
1410
1410
|
done();
|
|
1411
|
-
});
|
|
1411
|
+
}).catch((e) => done(e));
|
|
1412
1412
|
});
|
|
1413
1413
|
it('should parse virtual cycling TCX file (1)', done => {
|
|
1414
1414
|
// Given https://connect.garmin.com/modern/activity/6823905801 OR https://www.strava.com/activities/5340305665
|
|
@@ -1443,7 +1443,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1443
1443
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:03:42');
|
|
1444
1444
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1445
1445
|
done();
|
|
1446
|
-
});
|
|
1446
|
+
}).catch((e) => done(e));
|
|
1447
1447
|
});
|
|
1448
1448
|
});
|
|
1449
1449
|
describe('GPX', () => {
|
|
@@ -1477,7 +1477,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1477
1477
|
SpecUtils.assertNearEqualTime(elapsedTime, '02:04:36');
|
|
1478
1478
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1479
1479
|
done();
|
|
1480
|
-
});
|
|
1480
|
+
}).catch((e) => done(e));
|
|
1481
1481
|
});
|
|
1482
1482
|
it('should parse cycling GPX file (2)', done => {
|
|
1483
1483
|
// Given GPX Source: https://connect.garmin.com/modern/activity/6870692308 OR https://www.strava.com/activities/5385683390
|
|
@@ -1508,7 +1508,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1508
1508
|
SpecUtils.assertNearEqualTime(elapsedTime, '06:07:13');
|
|
1509
1509
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1510
1510
|
done();
|
|
1511
|
-
});
|
|
1511
|
+
}).catch((e) => done(e));
|
|
1512
1512
|
});
|
|
1513
1513
|
it('should parse cycling GPX file (3)', done => {
|
|
1514
1514
|
// Given GPX Source: https://connect.garmin.com/modern/activity/6905455978 OR https://www.strava.com/activities/5419099678
|
|
@@ -1539,7 +1539,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1539
1539
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:49:20');
|
|
1540
1540
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1541
1541
|
done();
|
|
1542
|
-
});
|
|
1542
|
+
}).catch((e) => done(e));
|
|
1543
1543
|
});
|
|
1544
1544
|
it('should parse cycling GPX file (4)', done => {
|
|
1545
1545
|
// Given GPX Source: https://connect.garmin.com/modern/activity/7555261629 or https://www.strava.com/activities/6020530554
|
|
@@ -1565,7 +1565,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1565
1565
|
expect(activity.getSquashedStreamData(DataHeartRate.type).length).toEqual(expectedSamplesLength);
|
|
1566
1566
|
expect(activity.getSquashedStreamData(DataPower.type).length).toEqual(expectedSamplesLength);
|
|
1567
1567
|
done();
|
|
1568
|
-
});
|
|
1568
|
+
}).catch((e) => done(e));
|
|
1569
1569
|
});
|
|
1570
1570
|
it('should parse virtual cycling GPX file (1)', done => {
|
|
1571
1571
|
// Given GPX Source: https://connect.garmin.com/modern/activity/6909869014 OR https://www.strava.com/activities/5423473093
|
|
@@ -1599,7 +1599,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1599
1599
|
SpecUtils.assertNearEqualTime(elapsedTime, '01:03:09');
|
|
1600
1600
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1601
1601
|
done();
|
|
1602
|
-
});
|
|
1602
|
+
}).catch((e) => done(e));
|
|
1603
1603
|
});
|
|
1604
1604
|
});
|
|
1605
1605
|
});
|
|
@@ -1687,7 +1687,7 @@ describe('FIT/TCX/GPX activity parsing compliance', () => {
|
|
|
1687
1687
|
SpecUtils.assertNearEqualTime(elapsedTime, '03:39:01');
|
|
1688
1688
|
SpecUtils.assertEqual(pauseTime, elapsedTime - movingTime, 1);
|
|
1689
1689
|
done();
|
|
1690
|
-
});
|
|
1690
|
+
}).catch((e) => done(e));
|
|
1691
1691
|
});
|
|
1692
1692
|
});
|
|
1693
1693
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sports-alliance/sports-lib",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"description": "A Library to for importing / exporting and processing GPX, TCX, FIT and JSON files from services such as Strava, Movescount, Garmin, Polar etc",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"gpx",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"clean": "rimraf ./lib/",
|
|
38
38
|
"generate:docs": "npm run build && typedoc --out docs --target es6 --theme minimal --mode file src",
|
|
39
39
|
"lint:fix": "eslint . --ext ts --fix",
|
|
40
|
-
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
|
40
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --forceExit",
|
|
41
41
|
"test-coverage": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
42
42
|
"prettier:fix": "prettier --write .",
|
|
43
43
|
"prepare": "husky install"
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"fast-xml-parser": "^5.3.3",
|
|
57
|
-
"fit-file-parser": "^2.1.
|
|
57
|
+
"fit-file-parser": "^2.1.1",
|
|
58
58
|
"geolib": "^3.3.4",
|
|
59
59
|
"gpx-builder": "^3.7.8",
|
|
60
60
|
"kalmanjs": "^1.1.0",
|
|
@@ -64,26 +64,26 @@
|
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@babel/core": "^7.28.5",
|
|
66
66
|
"@babel/preset-env": "^7.28.5",
|
|
67
|
-
"@garmin/fitsdk": "^21.
|
|
68
|
-
"@types/jest": "^
|
|
69
|
-
"@types/node": "^
|
|
70
|
-
"@types/xmldom": "^0.1.
|
|
71
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
72
|
-
"@typescript-eslint/parser": "^
|
|
73
|
-
"@xmldom/xmldom": "^0.
|
|
67
|
+
"@garmin/fitsdk": "^21.188.0",
|
|
68
|
+
"@types/jest": "^30.0.0",
|
|
69
|
+
"@types/node": "^25.0.5",
|
|
70
|
+
"@types/xmldom": "^0.1.34",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
72
|
+
"@typescript-eslint/parser": "^8.52.0",
|
|
73
|
+
"@xmldom/xmldom": "^0.8.11",
|
|
74
74
|
"babel-jest": "^30.2.0",
|
|
75
75
|
"buffer": "^6.0.3",
|
|
76
|
-
"eslint": "^
|
|
77
|
-
"eslint-config-prettier": "^
|
|
78
|
-
"eslint-plugin-prettier": "^
|
|
79
|
-
"husky": "^
|
|
80
|
-
"jest": "^
|
|
81
|
-
"prettier": "^
|
|
82
|
-
"pretty-quick": "^
|
|
83
|
-
"rimraf": "^
|
|
84
|
-
"ts-jest": "^
|
|
85
|
-
"typedoc": "^0.
|
|
86
|
-
"typescript": "^
|
|
76
|
+
"eslint": "^9.39.2",
|
|
77
|
+
"eslint-config-prettier": "^10.1.8",
|
|
78
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
79
|
+
"husky": "^9.1.7",
|
|
80
|
+
"jest": "^30.2.0",
|
|
81
|
+
"prettier": "^3.7.4",
|
|
82
|
+
"pretty-quick": "^4.2.2",
|
|
83
|
+
"rimraf": "^6.1.2",
|
|
84
|
+
"ts-jest": "^29.4.6",
|
|
85
|
+
"typedoc": "^0.28.15",
|
|
86
|
+
"typescript": "^5.9.3"
|
|
87
87
|
},
|
|
88
88
|
"husky": {
|
|
89
89
|
"hooks": {
|
package/.editorconfig
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Editor configuration, see http://editorconfig.org
|
|
2
|
-
root = true
|
|
3
|
-
|
|
4
|
-
[*]
|
|
5
|
-
charset = utf-8
|
|
6
|
-
indent_style = space
|
|
7
|
-
indent_size = 2
|
|
8
|
-
insert_final_newline = true
|
|
9
|
-
trim_trailing_whitespace = true
|
|
10
|
-
max_line_length = 120
|
|
11
|
-
|
|
12
|
-
[*.md]
|
|
13
|
-
max_line_length = off
|
|
14
|
-
trim_trailing_whitespace = false
|
package/.eslintignore
DELETED
package/.eslintrc.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
root: true,
|
|
3
|
-
parser: '@typescript-eslint/parser',
|
|
4
|
-
plugins: ['@typescript-eslint', 'prettier'],
|
|
5
|
-
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
|
|
6
|
-
rules: {
|
|
7
|
-
'prettier/prettier': 'error'
|
|
8
|
-
}
|
|
9
|
-
};
|
package/.prettierignore
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Generated data
|
|
2
|
-
docs
|
|
3
|
-
lib
|
|
4
|
-
node_modules
|
|
5
|
-
|
|
6
|
-
# OS/IDE
|
|
7
|
-
.vscode
|
|
8
|
-
.idea
|
|
9
|
-
.DS_Store
|
|
10
|
-
|
|
11
|
-
# Others
|
|
12
|
-
*.json
|
|
13
|
-
*.md
|
|
14
|
-
*.yml
|
|
15
|
-
*.log
|
|
16
|
-
.editorconfig
|
|
17
|
-
.gitignore
|
|
18
|
-
.prettierignore
|
|
19
|
-
LICENSE
|
|
20
|
-
|
|
21
|
-
# Lib specific
|
|
22
|
-
*.gpx
|
|
23
|
-
*.tcx
|
|
24
|
-
*.fit
|
package/.prettierrc.json
DELETED
package/.vscode/launch.json
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "0.2.0",
|
|
3
|
-
"configurations": [
|
|
4
|
-
{
|
|
5
|
-
"name": "Run Watch Mode",
|
|
6
|
-
"type": "node",
|
|
7
|
-
"request": "launch",
|
|
8
|
-
"runtimeExecutable": "npm",
|
|
9
|
-
"runtimeArgs": [
|
|
10
|
-
"run",
|
|
11
|
-
"watch"
|
|
12
|
-
],
|
|
13
|
-
"console": "integratedTerminal"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"type": "pwa-node",
|
|
17
|
-
"request": "launch",
|
|
18
|
-
"name": "Debug Jest Tests",
|
|
19
|
-
"program": "${workspaceFolder}/node_modules/.bin/jest",
|
|
20
|
-
"args": [
|
|
21
|
-
"--runInBand",
|
|
22
|
-
"--watchAll=false"
|
|
23
|
-
],
|
|
24
|
-
"console": "integratedTerminal",
|
|
25
|
-
"internalConsoleOptions": "neverOpen",
|
|
26
|
-
"disableOptimisticBPs": true,
|
|
27
|
-
"windows": {
|
|
28
|
-
"program": "${workspaceFolder}/node_modules/jest/bin/jest.js"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"type": "pwa-node",
|
|
33
|
-
"request": "launch",
|
|
34
|
-
"name": "Debug Current Test File",
|
|
35
|
-
"program": "${workspaceFolder}/node_modules/.bin/jest",
|
|
36
|
-
"args": [
|
|
37
|
-
"${fileBasenameNoExtension}",
|
|
38
|
-
"--runInBand",
|
|
39
|
-
"--watchAll=false"
|
|
40
|
-
],
|
|
41
|
-
"console": "integratedTerminal",
|
|
42
|
-
"internalConsoleOptions": "neverOpen",
|
|
43
|
-
"disableOptimisticBPs": true,
|
|
44
|
-
"windows": {
|
|
45
|
-
"program": "${workspaceFolder}/node_modules/jest/bin/jest.js"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
]
|
|
49
|
-
}
|