@modelhealth/modelhealth 0.1.17

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,494 @@
1
+ /**
2
+ * Model Health SDK TypeScript Types
3
+ *
4
+ * Complete type definitions for the Model Health biomechanics SDK.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ /**
9
+ * A session represents a collection of activities recorded together.
10
+ *
11
+ * Sessions contain multiple activities, each with their own videos and analysis results.
12
+ * Sessions can be shared publicly or kept private.
13
+ */
14
+ export interface Session {
15
+ id: string;
16
+ user: number;
17
+ public: boolean;
18
+ name: string;
19
+ session_name: string;
20
+ qrcode?: string;
21
+ activities: Activity[];
22
+ subject?: number;
23
+ activities_count: number;
24
+ }
25
+ /**
26
+ * Gender identity options for subject demographics.
27
+ */
28
+ export type Gender = "woman" | "man" | "transgender" | "non_binary" | "no_response";
29
+ /**
30
+ * Sex assigned at birth options for subject demographics.
31
+ */
32
+ export type Sex = "woman" | "man" | "intersex" | "not_listed" | "no_response";
33
+ /**
34
+ * Subject information for biomechanical analysis.
35
+ *
36
+ * Subjects represent individuals being analyzed. Their anthropometric
37
+ * data is used for scaling musculoskeletal models and calculating
38
+ * personalized biomechanical metrics.
39
+ */
40
+ export interface Subject {
41
+ id: number;
42
+ name: string;
43
+ weight?: number;
44
+ height?: number;
45
+ age?: number;
46
+ birth_year?: number;
47
+ gender: Gender;
48
+ sex_at_birth: Sex;
49
+ characteristics: string;
50
+ subject_tags: string[];
51
+ }
52
+ /**
53
+ * Parameters required for creating a new subject.
54
+ */
55
+ export interface SubjectParameters {
56
+ name: string;
57
+ weight: number;
58
+ height: number;
59
+ birth_year: number;
60
+ sex_at_birth: Sex;
61
+ gender: Gender;
62
+ characteristics: string;
63
+ subject_tags: string[];
64
+ terms: boolean;
65
+ }
66
+ /**
67
+ * Video file associated with an activity.
68
+ */
69
+ export interface Video {
70
+ id: string;
71
+ activity: string;
72
+ video?: string;
73
+ video_thumb?: string;
74
+ }
75
+ /**
76
+ * An activity represents a single recording within a session.
77
+ *
78
+ * Activities contain the captured videos, processing status, and analysis results.
79
+ */
80
+ export interface Activity {
81
+ id: string;
82
+ session: string;
83
+ name?: string;
84
+ status: string;
85
+ videos: Video[];
86
+ results: ActivityResult[];
87
+ }
88
+ /**
89
+ * Sort order for activity lists.
90
+ *
91
+ * Specifies how activities should be ordered when retrieved from the API.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const activities = await client.getActivitiesForSubject(
96
+ * subjectId,
97
+ * 0,
98
+ * 20,
99
+ * "updated_at"
100
+ * );
101
+ * ```
102
+ */
103
+ export type ActivitySort = "updated_at";
104
+ /**
105
+ * A tag that can be applied to activities for categorization.
106
+ *
107
+ * Activity tags provide a way to organize and filter activities.
108
+ * Common tags might include activity types (e.g., "CMJ", "Squat"),
109
+ * conditions (e.g., "Baseline", "Post-Training"), or any custom categorization.
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * const tags = await client.getActivityTags();
114
+ * const cmjTag = tags.find(t => t.value === "cmj");
115
+ * console.log(`CMJ activities: ${cmjTag?.label ?? ""}`);
116
+ * ```
117
+ */
118
+ export interface ActivityTag {
119
+ value: string;
120
+ label: string;
121
+ }
122
+ /**
123
+ * Result file associated with an activity.
124
+ *
125
+ * Results can include analysis outputs, synchronized videos,
126
+ * kinematic data, and visualization data.
127
+ */
128
+ export interface ActivityResult {
129
+ id: number;
130
+ activity: string;
131
+ tag?: string;
132
+ media?: string;
133
+ }
134
+ /**
135
+ * Processing status of an activity.
136
+ *
137
+ * Indicates the current state of video upload and processing.
138
+ */
139
+ export type ActivityProcessingStatus = {
140
+ type: "uploading";
141
+ uploaded: number;
142
+ total: number;
143
+ } | {
144
+ type: "processing";
145
+ } | {
146
+ type: "ready";
147
+ } | {
148
+ type: "failed";
149
+ };
150
+ /**
151
+ * Video version types available for download.
152
+ */
153
+ export type VideoVersion = "raw" | "synced";
154
+ /**
155
+ * Result data types available for download from activities, including the desired file format.
156
+ *
157
+ * Each variant encodes both the data type and the requested format, matching
158
+ * the `ResultDataTypeWire` discriminants used in the Rust core:
159
+ * - `"animation"` — JSON only
160
+ * - `"kinematics_mot"` — Kinematics in OpenSim MOT format
161
+ * - `"kinematics_csv"` — Kinematics in CSV format
162
+ * - `"markers_trc"` — Marker trajectories in TRC format
163
+ * - `"markers_csv"` — Marker trajectories in CSV format
164
+ * - `"model"` — OpenSim model (.osim), only available in neutral activities
165
+ */
166
+ export type ResultDataType = "animation" | "kinematics_mot" | "kinematics_csv" | "markers_trc" | "markers_csv" | "model";
167
+ /**
168
+ * File format types for downloaded result data.
169
+ */
170
+ export type FileType = "json" | "csv" | "mot" | "trc" | "o_sim";
171
+ /**
172
+ * Downloaded result data from an activity.
173
+ *
174
+ * The `result_data_type` identifies both what was requested and the implicit
175
+ * file format — use it to determine how to parse `data`.
176
+ */
177
+ export interface ResultData {
178
+ result_data_type: ResultDataType;
179
+ data: Uint8Array;
180
+ }
181
+ /**
182
+ * Type of analysis result data to download from a completed activity.
183
+ *
184
+ * The file format is implicit in the type:
185
+ * - `"metrics"` — JSON containing computed biomechanical metrics
186
+ * - `"data"` — ZIP containing raw analysis data
187
+ * - `"report"` — PDF report
188
+ */
189
+ export type AnalysisResultDataType =
190
+ /** Computed biomechanical metrics. Always JSON format. */
191
+ "metrics"
192
+ /** Raw analysis data. Always ZIP format. */
193
+ | "data"
194
+ /** Analysis report. Always PDF format. */
195
+ | "report";
196
+ /**
197
+ * Downloaded analysis result data from a completed activity.
198
+ *
199
+ * The `result_data_type` identifies both what was requested and the implicit
200
+ * file format — use it to determine how to parse `data`.
201
+ */
202
+ export interface AnalysisResultData {
203
+ result_data_type: AnalysisResultDataType;
204
+ data: Uint8Array;
205
+ }
206
+ /**
207
+ * Orientation of the checkerboard during camera calibration.
208
+ */
209
+ export type CheckerboardPlacement = "perpendicular" | "parallel";
210
+ /**
211
+ * Configuration for checkerboard-based camera calibration.
212
+ */
213
+ export interface CheckerboardDetails {
214
+ rows: number;
215
+ columns: number;
216
+ square_size: number;
217
+ placement: CheckerboardPlacement;
218
+ }
219
+ /**
220
+ * Status updates during calibration process.
221
+ */
222
+ export type CalibrationStatus = {
223
+ type: "recording";
224
+ } | {
225
+ type: "uploading";
226
+ uploaded: number;
227
+ total: number;
228
+ } | {
229
+ type: "processing";
230
+ percent?: number;
231
+ } | {
232
+ type: "done";
233
+ };
234
+ /**
235
+ * Represents available analysis functions for motion capture data.
236
+ *
237
+ * Each analysis type processes activity data to extract specific biomechanical metrics
238
+ * and insights. Analysis can only be performed on activities that have completed processing.
239
+ */
240
+ export declare const AnalysisType: {
241
+ /** Counter Movement Jump */
242
+ readonly CounterMovementJump: "counter_movement_jump";
243
+ /** Overground Walking */
244
+ readonly Gait: "gait";
245
+ /** Treadmill Running */
246
+ readonly TreadmillRunning: "treadmill_running";
247
+ /** Sit-to-Stand Transfer */
248
+ readonly SitToStand: "sit_to_stand";
249
+ /** Squat Exercise */
250
+ readonly Squats: "squats";
251
+ /** Range of Motion (ROM) */
252
+ readonly RangeOfMotion: "range_of_motion";
253
+ /** Overground Running */
254
+ readonly OvergroundRunning: "overground_running";
255
+ /** Drop Vertical Jump */
256
+ readonly DropJump: "drop_jump";
257
+ /** Hop Test */
258
+ readonly Hop: "hop";
259
+ /** Treadmill Walking */
260
+ readonly TreadmillGait: "treadmill_gait";
261
+ /** 5-0-5 Test */
262
+ readonly ChangeOfDirection: "change_of_direction";
263
+ /** Cutting Maneuver */
264
+ readonly Cut: "cut";
265
+ };
266
+ export type AnalysisType = (typeof AnalysisType)[keyof typeof AnalysisType];
267
+ /**
268
+ * Identifier for a running analysis task.
269
+ */
270
+ export interface AnalysisTask {
271
+ task_id: string;
272
+ }
273
+ /**
274
+ * Status of an analysis task.
275
+ */
276
+ export type AnalysisTaskStatus = {
277
+ type: "processing";
278
+ } | {
279
+ type: "completed";
280
+ } | {
281
+ type: "failed";
282
+ };
283
+ /**
284
+ * Results from a biomechanical analysis.
285
+ *
286
+ * Contains computed metrics like jump height, peak velocities,
287
+ * asymmetries, and other biomechanical parameters.
288
+ */
289
+ export interface AnalysisResult {
290
+ analysis_title: string;
291
+ analysis_description: string;
292
+ metrics: Record<string, Metric>;
293
+ }
294
+ /**
295
+ * Individual biomechanical metric from an analysis.
296
+ */
297
+ export interface Metric {
298
+ label: string;
299
+ bilateral: boolean;
300
+ value: MetricValue;
301
+ info: string;
302
+ decimal_places: number;
303
+ }
304
+ /**
305
+ * Value of a metric (single measurement or bilateral left/right).
306
+ */
307
+ export type MetricValue = {
308
+ type: "single";
309
+ value: number;
310
+ } | {
311
+ type: "bilateral";
312
+ left: number;
313
+ right: number;
314
+ };
315
+ /**
316
+ * Interface for storing authentication tokens securely.
317
+ *
318
+ * Implement this interface to provide custom token storage
319
+ * (e.g., encrypted storage, secure cookies, etc.)
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * class SecureTokenStorage implements TokenStorage {
324
+ * async getToken(): Promise<string | null> {
325
+ * // Retrieve from encrypted storage
326
+ * }
327
+ * async setToken(token: string): Promise<void> {
328
+ * // Store in encrypted storage
329
+ * }
330
+ * async removeToken(): Promise<void> {
331
+ * // Remove from storage
332
+ * }
333
+ * }
334
+ * ```
335
+ */
336
+ export interface TokenStorage {
337
+ /**
338
+ * Retrieve the stored authentication token.
339
+ *
340
+ * @returns The token string, or null if no token is stored
341
+ */
342
+ getToken(): Promise<string | null>;
343
+ /**
344
+ * Store an authentication token securely.
345
+ *
346
+ * @param token The token to store
347
+ */
348
+ setToken(token: string): Promise<void>;
349
+ /**
350
+ * Remove the stored authentication token.
351
+ */
352
+ removeToken(): Promise<void>;
353
+ }
354
+ /**
355
+ * In-memory token storage implementation.
356
+ *
357
+ * **Warning**: Not secure - tokens are lost on page refresh.
358
+ * Only use for development and testing.
359
+ *
360
+ * For production, use:
361
+ * - Encrypted IndexedDB
362
+ * - HttpOnly cookies with CSRF protection
363
+ * - Platform-specific secure storage
364
+ */
365
+ export declare class MemoryTokenStorage implements TokenStorage {
366
+ private token;
367
+ getToken(): Promise<string | null>;
368
+ setToken(token: string): Promise<void>;
369
+ removeToken(): Promise<void>;
370
+ }
371
+ /**
372
+ * LocalStorage-based token storage implementation.
373
+ *
374
+ * **Warning**: LocalStorage is not encrypted. Use secure
375
+ * HTTP-only cookies or encrypted storage for production.
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * const storage = new LocalStorageTokenStorage("my_app_token");
380
+ * const client = new ModelHealthService({ storage });
381
+ * ```
382
+ */
383
+ export declare class LocalStorageTokenStorage implements TokenStorage {
384
+ private key;
385
+ /**
386
+ * Create a LocalStorage token storage.
387
+ *
388
+ * @param key Storage key name (default: "modelhealth_token")
389
+ */
390
+ constructor(key?: string);
391
+ getToken(): Promise<string | null>;
392
+ setToken(token: string): Promise<void>;
393
+ removeToken(): Promise<void>;
394
+ }
395
+ /**
396
+ * Extract jump height from CMJ analysis results.
397
+ *
398
+ * @param result Analysis result from counter-movement jump
399
+ * @returns Jump height in centimeters, or null if not available
400
+ */
401
+ export declare function getJumpHeight(result: AnalysisResult): number | null;
402
+ /**
403
+ * Extract jump time from CMJ analysis results.
404
+ *
405
+ * @param result Analysis result from counter-movement jump
406
+ * @returns Jump time in seconds, or null if not available
407
+ */
408
+ export declare function getJumpTime(result: AnalysisResult): number | null;
409
+ /**
410
+ * Extract concentric/eccentric time ratio from CMJ analysis results.
411
+ *
412
+ * @param result Analysis result from counter-movement jump
413
+ * @returns Time ratio, or null if not available
414
+ */
415
+ export declare function getConcentricEccentricTimeRatio(result: AnalysisResult): number | null;
416
+ /**
417
+ * Extract reactive strength index from CMJ analysis results.
418
+ *
419
+ * @param result Analysis result from counter-movement jump
420
+ * @returns Reactive strength index, or null if not available
421
+ */
422
+ export declare function getReactiveStrengthIndex(result: AnalysisResult): number | null;
423
+ /**
424
+ * Extract peak vertical velocity from CMJ analysis results.
425
+ *
426
+ * @param result Analysis result from counter-movement jump
427
+ * @returns Peak velocity in m/s, or null if not available
428
+ */
429
+ export declare function getPeakVerticalVelocity(result: AnalysisResult): number | null;
430
+ /**
431
+ * Extract peak knee extension speed during takeoff from CMJ analysis results.
432
+ *
433
+ * @param result Analysis result from counter-movement jump
434
+ * @returns Object with left and right values in deg/s, or null if not available
435
+ */
436
+ export declare function getPeakKneeExtensionSpeed(result: AnalysisResult): {
437
+ left: number;
438
+ right: number;
439
+ } | null;
440
+ /**
441
+ * Extract peak hip extension speed during takeoff from CMJ analysis results.
442
+ *
443
+ * @param result Analysis result from counter-movement jump
444
+ * @returns Object with left and right values in deg/s, or null if not available
445
+ */
446
+ export declare function getPeakHipExtensionSpeed(result: AnalysisResult): {
447
+ left: number;
448
+ right: number;
449
+ } | null;
450
+ /**
451
+ * Extract peak knee flexion angle during landing from CMJ analysis results.
452
+ *
453
+ * @param result Analysis result from counter-movement jump
454
+ * @returns Object with left and right values in degrees, or null if not available
455
+ */
456
+ export declare function getPeakKneeFlexionLanding(result: AnalysisResult): {
457
+ left: number;
458
+ right: number;
459
+ } | null;
460
+ /**
461
+ * Extract peak knee valgus angle during landing from CMJ analysis results.
462
+ *
463
+ * @param result Analysis result from counter-movement jump
464
+ * @returns Object with left and right values in degrees, or null if not available
465
+ */
466
+ export declare function getPeakKneeValgusLanding(result: AnalysisResult): {
467
+ left: number;
468
+ right: number;
469
+ } | null;
470
+ /**
471
+ * Extract peak hip flexion angle during landing from CMJ analysis results.
472
+ *
473
+ * @param result Analysis result from counter-movement jump
474
+ * @returns Object with left and right values in degrees, or null if not available
475
+ */
476
+ export declare function getPeakHipFlexionLanding(result: AnalysisResult): {
477
+ left: number;
478
+ right: number;
479
+ } | null;
480
+ /**
481
+ * Extract peak trunk flexion during landing from CMJ analysis results.
482
+ *
483
+ * @param result Analysis result from counter-movement jump
484
+ * @returns Trunk flexion angle in degrees, or null if not available
485
+ */
486
+ export declare function getPeakTrunkFlexionLanding(result: AnalysisResult): number | null;
487
+ /**
488
+ * Extract peak trunk lean during landing from CMJ analysis results.
489
+ *
490
+ * @param result Analysis result from counter-movement jump
491
+ * @returns Trunk lean angle in degrees, or null if not available
492
+ */
493
+ export declare function getPeakTrunkLeanLanding(result: AnalysisResult): number | null;
494
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}