@sports-alliance/sports-lib 7.0.13 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/check-metrics.js +30 -0
- package/find-values.js +33 -0
- package/inspect-devices.js +21 -0
- package/inspect-session.js +27 -0
- package/lib/cjs/activities/devices/device.d.ts +1 -0
- package/lib/cjs/activities/devices/device.interface.d.ts +1 -0
- package/lib/cjs/activities/devices/device.js +1 -0
- package/lib/cjs/activities/devices/device.json.interface.d.ts +1 -0
- package/lib/cjs/data/data.age.d.ts +6 -0
- package/lib/cjs/data/data.age.js +12 -0
- package/lib/cjs/data/data.avg-flow.d.ts +5 -0
- package/lib/cjs/data/data.avg-flow.js +9 -0
- package/lib/cjs/data/data.avg-grit.d.ts +5 -0
- package/lib/cjs/data/data.avg-grit.js +9 -0
- package/lib/cjs/data/data.avg-respiration-rate.d.ts +5 -0
- package/lib/cjs/data/data.avg-respiration-rate.js +9 -0
- package/lib/cjs/data/data.avg-vam.d.ts +5 -0
- package/lib/cjs/data/data.avg-vam.js +9 -0
- package/lib/cjs/data/data.est-sweat-loss.d.ts +6 -0
- package/lib/cjs/data/data.est-sweat-loss.js +12 -0
- package/lib/cjs/data/data.flow.d.ts +5 -0
- package/lib/cjs/data/data.flow.js +9 -0
- package/lib/cjs/data/data.gender.d.ts +4 -0
- package/lib/cjs/data/data.gender.js +8 -0
- package/lib/cjs/data/data.grit.d.ts +5 -0
- package/lib/cjs/data/data.grit.js +9 -0
- package/lib/cjs/data/data.height.d.ts +6 -0
- package/lib/cjs/data/data.height.js +12 -0
- package/lib/cjs/data/data.jump-count.d.ts +6 -0
- package/lib/cjs/data/data.jump-count.js +12 -0
- package/lib/cjs/data/data.jump-event.d.ts +12 -0
- package/lib/cjs/data/data.jump-event.js +16 -0
- package/lib/cjs/data/data.left-pedal-smoothness.d.ts +6 -0
- package/lib/cjs/data/data.left-pedal-smoothness.js +12 -0
- package/lib/cjs/data/data.left-torque-effectiveness.d.ts +6 -0
- package/lib/cjs/data/data.left-torque-effectiveness.js +12 -0
- package/lib/cjs/data/data.max-respiration-rate.d.ts +5 -0
- package/lib/cjs/data/data.max-respiration-rate.js +9 -0
- package/lib/cjs/data/data.min-respiration-rate.d.ts +5 -0
- package/lib/cjs/data/data.min-respiration-rate.js +9 -0
- package/lib/cjs/data/data.primary-benefit.d.ts +6 -0
- package/lib/cjs/data/data.primary-benefit.js +12 -0
- package/lib/cjs/data/data.resting-calories.d.ts +5 -0
- package/lib/cjs/data/data.resting-calories.js +9 -0
- package/lib/cjs/data/data.right-pedal-smoothness.d.ts +6 -0
- package/lib/cjs/data/data.right-pedal-smoothness.js +12 -0
- package/lib/cjs/data/data.right-torque-effectiveness.d.ts +6 -0
- package/lib/cjs/data/data.right-torque-effectiveness.js +12 -0
- package/lib/cjs/data/data.store.js +54 -2
- package/lib/cjs/data/data.total-flow.d.ts +5 -0
- package/lib/cjs/data/data.total-flow.js +9 -0
- package/lib/cjs/data/data.total-grit.d.ts +5 -0
- package/lib/cjs/data/data.total-grit.js +9 -0
- package/lib/cjs/data/data.training-load-peak.d.ts +5 -0
- package/lib/cjs/data/data.training-load-peak.js +9 -0
- package/lib/cjs/data/data.weight.d.ts +6 -0
- package/lib/cjs/data/data.weight.js +12 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.d.ts +3 -1
- package/lib/cjs/events/adapters/importers/fit/importer.fit.js +209 -1
- package/lib/cjs/events/adapters/importers/fit/importer.fit.mapper.js +42 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.mtb.spec.d.ts +1 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.mtb.spec.js +217 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.road.spec.d.ts +1 -0
- package/lib/cjs/events/adapters/importers/fit/importer.fit.road.spec.js +103 -0
- package/lib/cjs/index.d.ts +4 -0
- package/lib/cjs/index.js +4 -0
- package/lib/esm/activities/devices/device.d.ts +1 -0
- package/lib/esm/activities/devices/device.interface.d.ts +1 -0
- package/lib/esm/activities/devices/device.json.interface.d.ts +1 -0
- package/lib/esm/data/data.age.d.ts +6 -0
- package/lib/esm/data/data.avg-flow.d.ts +5 -0
- package/lib/esm/data/data.avg-grit.d.ts +5 -0
- package/lib/esm/data/data.avg-respiration-rate.d.ts +5 -0
- package/lib/esm/data/data.avg-vam.d.ts +5 -0
- package/lib/esm/data/data.est-sweat-loss.d.ts +6 -0
- package/lib/esm/data/data.flow.d.ts +5 -0
- package/lib/esm/data/data.gender.d.ts +4 -0
- package/lib/esm/data/data.grit.d.ts +5 -0
- package/lib/esm/data/data.height.d.ts +6 -0
- package/lib/esm/data/data.jump-count.d.ts +6 -0
- package/lib/esm/data/data.jump-event.d.ts +12 -0
- package/lib/esm/data/data.left-pedal-smoothness.d.ts +6 -0
- package/lib/esm/data/data.left-torque-effectiveness.d.ts +6 -0
- package/lib/esm/data/data.max-respiration-rate.d.ts +5 -0
- package/lib/esm/data/data.min-respiration-rate.d.ts +5 -0
- package/lib/esm/data/data.primary-benefit.d.ts +6 -0
- package/lib/esm/data/data.resting-calories.d.ts +5 -0
- package/lib/esm/data/data.right-pedal-smoothness.d.ts +6 -0
- package/lib/esm/data/data.right-torque-effectiveness.d.ts +6 -0
- package/lib/esm/data/data.total-flow.d.ts +5 -0
- package/lib/esm/data/data.total-grit.d.ts +5 -0
- package/lib/esm/data/data.training-load-peak.d.ts +5 -0
- package/lib/esm/data/data.weight.d.ts +6 -0
- package/lib/esm/events/adapters/importers/fit/importer.fit.d.ts +3 -1
- package/lib/esm/events/adapters/importers/fit/importer.fit.mtb.spec.d.ts +1 -0
- package/lib/esm/events/adapters/importers/fit/importer.fit.road.spec.d.ts +1 -0
- package/lib/esm/index.d.ts +4 -0
- package/lib/esm/index.js +514 -3
- package/package.json +2 -2
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
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
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const importer_fit_1 = require("./importer.fit");
|
|
49
|
+
const data_left_torque_effectiveness_1 = require("../../../../data/data.left-torque-effectiveness");
|
|
50
|
+
const data_right_torque_effectiveness_1 = require("../../../../data/data.right-torque-effectiveness");
|
|
51
|
+
const data_left_pedal_smoothness_1 = require("../../../../data/data.left-pedal-smoothness");
|
|
52
|
+
const data_right_pedal_smoothness_1 = require("../../../../data/data.right-pedal-smoothness");
|
|
53
|
+
const activity_parsing_options_1 = require("../../../../activities/activity-parsing-options");
|
|
54
|
+
describe('EventImporterFIT Road with Power', () => {
|
|
55
|
+
const fitFilePath = path.join(__dirname, '../../../../../samples/fit/road-with-power.fit');
|
|
56
|
+
it('should parse road-with-power.fit and extract torque effectiveness and pedal smoothness', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
const fileContent = fs.readFileSync(fitFilePath);
|
|
58
|
+
const arrayBuffer = fileContent.buffer.slice(fileContent.byteOffset, fileContent.byteOffset + fileContent.byteLength);
|
|
59
|
+
const options = new activity_parsing_options_1.ActivityParsingOptions({ generateUnitStreams: false });
|
|
60
|
+
const event = yield importer_fit_1.EventImporterFIT.getFromArrayBuffer(arrayBuffer, options, 'Test Road Activity');
|
|
61
|
+
const activity = event.getFirstActivity();
|
|
62
|
+
// Check for Left Torque Effectiveness
|
|
63
|
+
const leftTEStream = activity.getStreamData(data_left_torque_effectiveness_1.DataLeftTorqueEffectiveness.type);
|
|
64
|
+
expect(leftTEStream).toBeDefined();
|
|
65
|
+
expect(leftTEStream.some((val) => val !== null && val > 0)).toBe(true);
|
|
66
|
+
// data contains 82
|
|
67
|
+
expect(leftTEStream.find((val) => val === 82)).toBe(82);
|
|
68
|
+
// Check for Right Torque Effectiveness
|
|
69
|
+
const rightTEStream = activity.getStreamData(data_right_torque_effectiveness_1.DataRightTorqueEffectiveness.type);
|
|
70
|
+
expect(rightTEStream).toBeDefined();
|
|
71
|
+
// Right side having data (can be 0)
|
|
72
|
+
expect(rightTEStream.length).toBeGreaterThan(0);
|
|
73
|
+
// Check for Left Pedal Smoothness
|
|
74
|
+
const leftPSStream = activity.getStreamData(data_left_pedal_smoothness_1.DataLeftPedalSmoothness.type);
|
|
75
|
+
expect(leftPSStream).toBeDefined();
|
|
76
|
+
expect(leftPSStream.some((val) => val !== null && val > 0)).toBe(true);
|
|
77
|
+
// data contains 24.5
|
|
78
|
+
expect(leftPSStream.find((val) => val === 24.5)).toBe(24.5);
|
|
79
|
+
// Check for Right Pedal Smoothness
|
|
80
|
+
const rightPSStream = activity.getStreamData(data_right_pedal_smoothness_1.DataRightPedalSmoothness.type);
|
|
81
|
+
expect(rightPSStream).toBeDefined();
|
|
82
|
+
// Just check we have data points
|
|
83
|
+
expect(rightPSStream.length).toBeGreaterThan(0);
|
|
84
|
+
// Check for Device Infos
|
|
85
|
+
const devices = activity.creator.devices;
|
|
86
|
+
expect(devices).toBeDefined();
|
|
87
|
+
expect(devices.length).toBeGreaterThan(0);
|
|
88
|
+
// Find Stages Cycling (Index 4)
|
|
89
|
+
const stages = devices.find(d => d.index === 4);
|
|
90
|
+
expect(stages).toBeDefined();
|
|
91
|
+
expect(stages === null || stages === void 0 ? void 0 : stages.manufacturer).toBe('stages_cycling');
|
|
92
|
+
expect(stages === null || stages === void 0 ? void 0 : stages.antId).toBe('0-5-0B-31CD');
|
|
93
|
+
// Find Lezyne Bike Light (Index 5)
|
|
94
|
+
const lezyneLight = devices.find(d => d.index === 5);
|
|
95
|
+
expect(lezyneLight).toBeDefined();
|
|
96
|
+
expect(lezyneLight === null || lezyneLight === void 0 ? void 0 : lezyneLight.manufacturer).toBe('lezyne');
|
|
97
|
+
expect(lezyneLight === null || lezyneLight === void 0 ? void 0 : lezyneLight.antId).toBe('E-1-23-B088');
|
|
98
|
+
// Find Lezyne Bike Radar (Index 6)
|
|
99
|
+
const lezyneRadar = devices.find(d => d.index === 6);
|
|
100
|
+
expect(lezyneRadar).toBeDefined();
|
|
101
|
+
expect(lezyneRadar === null || lezyneRadar === void 0 ? void 0 : lezyneRadar.antId).toBe('E-1-28-B088');
|
|
102
|
+
}));
|
|
103
|
+
});
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ export * from './data/data.ibi';
|
|
|
74
74
|
export * from './data/data.interface';
|
|
75
75
|
export * from './data/data.latitude-degrees';
|
|
76
76
|
export * from './data/data.left-balance';
|
|
77
|
+
export * from './data/data.left-pedal-smoothness';
|
|
78
|
+
export * from './data/data.left-torque-effectiveness';
|
|
77
79
|
export * from './data/data.longitude-degrees';
|
|
78
80
|
export * from './data/data.moving-time';
|
|
79
81
|
export * from './data/data.pace';
|
|
@@ -89,6 +91,8 @@ export * from './data/data.power-min';
|
|
|
89
91
|
export * from './data/data.power-right';
|
|
90
92
|
export * from './data/data.recovery-time';
|
|
91
93
|
export * from './data/data.right-balance';
|
|
94
|
+
export * from './data/data.right-pedal-smoothness';
|
|
95
|
+
export * from './data/data.right-torque-effectiveness';
|
|
92
96
|
export * from './data/data.rpe';
|
|
93
97
|
export * from './data/data.sea-level-pressure';
|
|
94
98
|
export * from './data/data.speed';
|
package/lib/cjs/index.js
CHANGED
|
@@ -104,6 +104,8 @@ __exportStar(require("./data/data.ibi"), exports);
|
|
|
104
104
|
__exportStar(require("./data/data.interface"), exports);
|
|
105
105
|
__exportStar(require("./data/data.latitude-degrees"), exports);
|
|
106
106
|
__exportStar(require("./data/data.left-balance"), exports);
|
|
107
|
+
__exportStar(require("./data/data.left-pedal-smoothness"), exports);
|
|
108
|
+
__exportStar(require("./data/data.left-torque-effectiveness"), exports);
|
|
107
109
|
__exportStar(require("./data/data.longitude-degrees"), exports);
|
|
108
110
|
__exportStar(require("./data/data.moving-time"), exports);
|
|
109
111
|
__exportStar(require("./data/data.pace"), exports);
|
|
@@ -119,6 +121,8 @@ __exportStar(require("./data/data.power-min"), exports);
|
|
|
119
121
|
__exportStar(require("./data/data.power-right"), exports);
|
|
120
122
|
__exportStar(require("./data/data.recovery-time"), exports);
|
|
121
123
|
__exportStar(require("./data/data.right-balance"), exports);
|
|
124
|
+
__exportStar(require("./data/data.right-pedal-smoothness"), exports);
|
|
125
|
+
__exportStar(require("./data/data.right-torque-effectiveness"), exports);
|
|
122
126
|
__exportStar(require("./data/data.rpe"), exports);
|
|
123
127
|
__exportStar(require("./data/data.sea-level-pressure"), exports);
|
|
124
128
|
__exportStar(require("./data/data.speed"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DataEvent } from './data.event';
|
|
2
|
+
export interface JumpEventInterface {
|
|
3
|
+
distance: number;
|
|
4
|
+
height: number;
|
|
5
|
+
score: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class DataJumpEvent extends DataEvent {
|
|
8
|
+
jumpData: JumpEventInterface;
|
|
9
|
+
static type: string;
|
|
10
|
+
constructor(timestamp: number, jumpData: JumpEventInterface);
|
|
11
|
+
toJSON(): any;
|
|
12
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { EventInterface } from '../../../event.interface';
|
|
2
2
|
import { CreatorInterface } from '../../../../creators/creator.interface';
|
|
3
|
+
import { ActivityInterface } from '../../../../activities/activity.interface';
|
|
4
|
+
import { DataInterface } from '../../../../data/data.interface';
|
|
3
5
|
import { ActivityParsingOptions } from '../../../../activities/activity-parsing-options';
|
|
4
6
|
import { Buffer } from 'buffer';
|
|
5
7
|
export declare class EventImporterFIT {
|
|
@@ -27,7 +29,7 @@ export declare class EventImporterFIT {
|
|
|
27
29
|
*/
|
|
28
30
|
private static swapTimesIfRequired;
|
|
29
31
|
private static getActivityTypeFromSessionObject;
|
|
30
|
-
|
|
32
|
+
static getStatsFromObject(object: any, activity: ActivityInterface, isLap: boolean): DataInterface[];
|
|
31
33
|
static getCreatorFromFitDataObject(fitDataObject: any): CreatorInterface;
|
|
32
34
|
}
|
|
33
35
|
export interface FITFileActivityEvent {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ export * from './data/data.ibi';
|
|
|
74
74
|
export * from './data/data.interface';
|
|
75
75
|
export * from './data/data.latitude-degrees';
|
|
76
76
|
export * from './data/data.left-balance';
|
|
77
|
+
export * from './data/data.left-pedal-smoothness';
|
|
78
|
+
export * from './data/data.left-torque-effectiveness';
|
|
77
79
|
export * from './data/data.longitude-degrees';
|
|
78
80
|
export * from './data/data.moving-time';
|
|
79
81
|
export * from './data/data.pace';
|
|
@@ -89,6 +91,8 @@ export * from './data/data.power-min';
|
|
|
89
91
|
export * from './data/data.power-right';
|
|
90
92
|
export * from './data/data.recovery-time';
|
|
91
93
|
export * from './data/data.right-balance';
|
|
94
|
+
export * from './data/data.right-pedal-smoothness';
|
|
95
|
+
export * from './data/data.right-torque-effectiveness';
|
|
92
96
|
export * from './data/data.rpe';
|
|
93
97
|
export * from './data/data.sea-level-pressure';
|
|
94
98
|
export * from './data/data.speed';
|