@modelhealth/modelhealth 0.1.17 → 0.1.23

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/dist/index.d.ts CHANGED
@@ -10,17 +10,9 @@
10
10
  * ```typescript
11
11
  * import { ModelHealthService } from '@modelhealth/modelhealth';
12
12
  *
13
- * // Create and initialize client with API key
14
13
  * const client = new ModelHealthService({ apiKey: "your-api-key-here" });
15
14
  * await client.init();
16
15
  *
17
- * // Authenticate (optional - API key already provides authentication)
18
- * const result = await client.login("user@example.com", "password");
19
- * if (result === "verification_required") {
20
- * await client.verify("123456", true);
21
- * }
22
- *
23
- * // Get sessions
24
16
  * const sessions = await client.sessionList();
25
17
  * ```
26
18
  */
@@ -125,23 +117,7 @@ export declare class ModelHealthService {
125
117
  */
126
118
  private ensureInitialized;
127
119
  /**
128
- * Checks if a user is currently authenticated.
129
- *
130
- * @returns `true` if authenticated, `false` otherwise
131
- *
132
- * @example
133
- * ```typescript
134
- * if (await client.isAuthenticated()) {
135
- * // Proceed with authenticated operations
136
- * const sessions = await client.sessionList();
137
- * } else {
138
- * // Show login screen
139
- * }
140
- * ```
141
- */
142
- isAuthenticated(): Promise<boolean>;
143
- /**
144
- * Retrieves all sessions for the authenticated user.
120
+ * Retrieves all sessions for the account (API key).
145
121
  *
146
122
  * @returns An array of `Session` objects. Returns an empty array if no sessions exist.
147
123
  * @throws If the request fails due to network issues, authentication problems,
@@ -192,10 +168,10 @@ export declare class ModelHealthService {
192
168
  * const session = await client.createSession();
193
169
  *
194
170
  * // Proceed with calibration
195
- * const details = {
171
+ * const details: CheckerboardDetails = {
196
172
  * rows: 4,
197
173
  * columns: 5,
198
- * square_size: 35,
174
+ * squareSize: 35,
199
175
  * placement: "perpendicular"
200
176
  * };
201
177
  * // await client.calibrateCamera(session, details, (status) => { ... });
@@ -221,10 +197,10 @@ export declare class ModelHealthService {
221
197
  * ```typescript
222
198
  * const session = await client.createSession();
223
199
  *
224
- * const details = {
200
+ * const details: CheckerboardDetails = {
225
201
  * rows: 4, // Internal corners, not squares (for 5×6 board)
226
202
  * columns: 5, // Internal corners, not squares (for 5×6 board)
227
- * square_size: 35, // Measured in millimeters
203
+ * squareSize: 35, // Measured in millimeters
228
204
  * placement: "perpendicular"
229
205
  * };
230
206
  *
@@ -263,7 +239,7 @@ export declare class ModelHealthService {
263
239
  */
264
240
  calibrateNeutralPose(subject: Subject, session: Session, statusCallback: (status: CalibrationStatus) => void): Promise<void>;
265
241
  /**
266
- * Retrieves all subjects associated with the authenticated account.
242
+ * Retrieves all subjects associated with the account.
267
243
  *
268
244
  * Subjects represent individuals being monitored or assessed. Each subject
269
245
  * contains demographic information, physical measurements, and categorization tags.
@@ -279,7 +255,7 @@ export declare class ModelHealthService {
279
255
  * }
280
256
  *
281
257
  * // Filter by tags
282
- * const athletes = subjects.filter(s => s.subject_tags.includes("athlete"));
258
+ * const athletes = subjects.filter(s => s.subjectTags.includes("athlete"));
283
259
  * ```
284
260
  */
285
261
  subjectList(): Promise<Subject[]>;
@@ -296,15 +272,15 @@ export declare class ModelHealthService {
296
272
  *
297
273
  * @example
298
274
  * ```typescript
299
- * const params = {
275
+ * const params: SubjectParameters = {
300
276
  * name: "John Doe",
301
277
  * weight: 75.0, // kilograms
302
278
  * height: 180.0, // centimeters
303
- * birth_year: 1990,
279
+ * birthYear: 1990,
304
280
  * gender: "man",
305
- * sex_at_birth: "man",
281
+ * sexAtBirth: "man",
306
282
  * characteristics: "Regular training schedule",
307
- * subject_tags: ["athlete"],
283
+ * subjectTags: ["athlete"],
308
284
  * terms: true
309
285
  * };
310
286
  *
@@ -435,7 +411,7 @@ export declare class ModelHealthService {
435
411
  */
436
412
  getActivityTags(): Promise<ActivityTag[]>;
437
413
  /**
438
- * Retrieves all movement activities associated with the authenticated account.
414
+ * Retrieves all movement activities associated with the account.
439
415
  *
440
416
  * Activities represent individual recording sessions and contain references to
441
417
  * captured videos and analysis results. Use this to review past data or
@@ -507,7 +483,7 @@ export declare class ModelHealthService {
507
483
  * const results = await client.downloadActivityResultData(activity, ["kinematics_mot"]);
508
484
  *
509
485
  * for (const result of results) {
510
- * switch (result.result_data_type) {
486
+ * switch (result.resultDataType) {
511
487
  * case "kinematics_mot":
512
488
  * // Use result.data directly as a .mot file
513
489
  * break;
@@ -543,7 +519,7 @@ export declare class ModelHealthService {
543
519
  * );
544
520
  *
545
521
  * for (const result of results) {
546
- * switch (result.result_data_type) {
522
+ * switch (result.resultDataType) {
547
523
  * case "metrics":
548
524
  * const json = JSON.parse(new TextDecoder().decode(result.data));
549
525
  * break;
@@ -643,7 +619,7 @@ export declare class ModelHealthService {
643
619
  * @example
644
620
  * ```typescript
645
621
  * const task = await client.startAnalysis(
646
- * "counterMovementJump",
622
+ * AnalysisType.CounterMovementJump,
647
623
  * activity,
648
624
  * session
649
625
  * );
@@ -676,7 +652,7 @@ export declare class ModelHealthService {
676
652
  * activity,
677
653
  * ["metrics", "report"]
678
654
  * );
679
- * const metricsEntry = results.find((r) => r.result_data_type === "metrics");
655
+ * const metricsEntry = results.find((r) => r.resultDataType === "metrics");
680
656
  * if (metricsEntry?.data) {
681
657
  * const metrics = JSON.parse(new TextDecoder().decode(metricsEntry.data));
682
658
  * console.log("Metrics:", metrics);
@@ -690,11 +666,15 @@ export declare class ModelHealthService {
690
666
  */
691
667
  getAnalysisStatus(task: AnalysisTask): Promise<AnalysisTaskStatus>;
692
668
  /**
693
- * Parse JSON response from WASM.
669
+ * Parse a WASM response and normalise object keys to camelCase.
670
+ *
671
+ * The WASM layer serialises Rust structs using snake_case field names.
672
+ * This method converts them to idiomatic TypeScript camelCase before
673
+ * returning to the caller.
694
674
  *
695
675
  * @private
696
- * @param value Value from WASM (may be string or object)
697
- * @returns Parsed TypeScript object
676
+ * @param value Value from WASM (JsValue or JSON string)
677
+ * @returns Parsed, camelised TypeScript object
698
678
  */
699
679
  private parseResponse;
700
680
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,17 +10,9 @@
10
10
  * ```typescript
11
11
  * import { ModelHealthService } from '@modelhealth/modelhealth';
12
12
  *
13
- * // Create and initialize client with API key
14
13
  * const client = new ModelHealthService({ apiKey: "your-api-key-here" });
15
14
  * await client.init();
16
15
  *
17
- * // Authenticate (optional - API key already provides authentication)
18
- * const result = await client.login("user@example.com", "password");
19
- * if (result === "verification_required") {
20
- * await client.verify("123456", true);
21
- * }
22
- *
23
- * // Get sessions
24
16
  * const sessions = await client.sessionList();
25
17
  * ```
26
18
  */
@@ -54,6 +46,53 @@ async function initWasm() {
54
46
  })();
55
47
  return wasmInitPromise;
56
48
  }
49
+ // MARK: - Key Transformation Utilities
50
+ /**
51
+ * Convert a single snake_case string to camelCase.
52
+ * @internal
53
+ */
54
+ function snakeToCamel(str) {
55
+ return str.replace(/_([a-z])/g, (_, c) => c.toUpperCase());
56
+ }
57
+ /**
58
+ * Convert a single camelCase string to snake_case.
59
+ * @internal
60
+ */
61
+ function camelToSnake(str) {
62
+ return str.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
63
+ }
64
+ /**
65
+ * Recursively convert all object keys from snake_case to camelCase.
66
+ * Used to normalise WASM responses to idiomatic TypeScript.
67
+ * @internal
68
+ */
69
+ function camelizeKeys(value) {
70
+ if (Array.isArray(value))
71
+ return value.map(camelizeKeys);
72
+ if (value !== null && typeof value === "object") {
73
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [
74
+ snakeToCamel(k),
75
+ camelizeKeys(v),
76
+ ]));
77
+ }
78
+ return value;
79
+ }
80
+ /**
81
+ * Recursively convert all object keys from camelCase to snake_case.
82
+ * Used to convert TypeScript inputs back to the format expected by the WASM layer.
83
+ * @internal
84
+ */
85
+ function decamelizeKeys(value) {
86
+ if (Array.isArray(value))
87
+ return value.map(decamelizeKeys);
88
+ if (value !== null && typeof value === "object") {
89
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [
90
+ camelToSnake(k),
91
+ decamelizeKeys(v),
92
+ ]));
93
+ }
94
+ return value;
95
+ }
57
96
  /**
58
97
  * Model Health SDK Client for biomechanical analysis.
59
98
  *
@@ -161,28 +200,9 @@ export class ModelHealthService {
161
200
  }
162
201
  }
163
202
  // MARK: - Authentication
164
- /**
165
- * Checks if a user is currently authenticated.
166
- *
167
- * @returns `true` if authenticated, `false` otherwise
168
- *
169
- * @example
170
- * ```typescript
171
- * if (await client.isAuthenticated()) {
172
- * // Proceed with authenticated operations
173
- * const sessions = await client.sessionList();
174
- * } else {
175
- * // Show login screen
176
- * }
177
- * ```
178
- */
179
- async isAuthenticated() {
180
- this.ensureInitialized();
181
- return await this.wasmClient.isAuthenticated();
182
- }
183
203
  // MARK: - Sessions
184
204
  /**
185
- * Retrieves all sessions for the authenticated user.
205
+ * Retrieves all sessions for the account (API key).
186
206
  *
187
207
  * @returns An array of `Session` objects. Returns an empty array if no sessions exist.
188
208
  * @throws If the request fails due to network issues, authentication problems,
@@ -241,10 +261,10 @@ export class ModelHealthService {
241
261
  * const session = await client.createSession();
242
262
  *
243
263
  * // Proceed with calibration
244
- * const details = {
264
+ * const details: CheckerboardDetails = {
245
265
  * rows: 4,
246
266
  * columns: 5,
247
- * square_size: 35,
267
+ * squareSize: 35,
248
268
  * placement: "perpendicular"
249
269
  * };
250
270
  * // await client.calibrateCamera(session, details, (status) => { ... });
@@ -274,10 +294,10 @@ export class ModelHealthService {
274
294
  * ```typescript
275
295
  * const session = await client.createSession();
276
296
  *
277
- * const details = {
297
+ * const details: CheckerboardDetails = {
278
298
  * rows: 4, // Internal corners, not squares (for 5×6 board)
279
299
  * columns: 5, // Internal corners, not squares (for 5×6 board)
280
- * square_size: 35, // Measured in millimeters
300
+ * squareSize: 35, // Measured in millimeters
281
301
  * placement: "perpendicular"
282
302
  * };
283
303
  *
@@ -292,7 +312,7 @@ export class ModelHealthService {
292
312
  const jsCallback = (statusJson) => {
293
313
  statusCallback(statusJson);
294
314
  };
295
- await wasmModule.calibrateCamera(this.config.apiKey, session, checkerboardDetails, jsCallback);
315
+ await wasmModule.calibrateCamera(this.config.apiKey, decamelizeKeys(session), decamelizeKeys(checkerboardDetails), jsCallback);
296
316
  }
297
317
  /**
298
318
  * Captures the subject's neutral standing pose for model scaling.
@@ -325,11 +345,11 @@ export class ModelHealthService {
325
345
  const jsCallback = (statusJson) => {
326
346
  statusCallback(statusJson);
327
347
  };
328
- await wasmModule.calibrateNeutralPose(this.config.apiKey, subject, session, jsCallback);
348
+ await wasmModule.calibrateNeutralPose(this.config.apiKey, decamelizeKeys(subject), decamelizeKeys(session), jsCallback);
329
349
  }
330
350
  // MARK: - Subjects
331
351
  /**
332
- * Retrieves all subjects associated with the authenticated account.
352
+ * Retrieves all subjects associated with the account.
333
353
  *
334
354
  * Subjects represent individuals being monitored or assessed. Each subject
335
355
  * contains demographic information, physical measurements, and categorization tags.
@@ -345,7 +365,7 @@ export class ModelHealthService {
345
365
  * }
346
366
  *
347
367
  * // Filter by tags
348
- * const athletes = subjects.filter(s => s.subject_tags.includes("athlete"));
368
+ * const athletes = subjects.filter(s => s.subjectTags.includes("athlete"));
349
369
  * ```
350
370
  */
351
371
  async subjectList() {
@@ -366,15 +386,15 @@ export class ModelHealthService {
366
386
  *
367
387
  * @example
368
388
  * ```typescript
369
- * const params = {
389
+ * const params: SubjectParameters = {
370
390
  * name: "John Doe",
371
391
  * weight: 75.0, // kilograms
372
392
  * height: 180.0, // centimeters
373
- * birth_year: 1990,
393
+ * birthYear: 1990,
374
394
  * gender: "man",
375
- * sex_at_birth: "man",
395
+ * sexAtBirth: "man",
376
396
  * characteristics: "Regular training schedule",
377
- * subject_tags: ["athlete"],
397
+ * subjectTags: ["athlete"],
378
398
  * terms: true
379
399
  * };
380
400
  *
@@ -387,7 +407,7 @@ export class ModelHealthService {
387
407
  */
388
408
  async createSubject(parameters) {
389
409
  this.ensureInitialized();
390
- const result = await this.wasmClient.createSubject(parameters);
410
+ const result = await this.wasmClient.createSubject(decamelizeKeys(parameters));
391
411
  return this.parseResponse(result);
392
412
  }
393
413
  // MARK: - Activity Management
@@ -476,7 +496,7 @@ export class ModelHealthService {
476
496
  */
477
497
  async updateActivity(activity) {
478
498
  this.ensureInitialized();
479
- const result = await this.wasmClient.updateActivity(activity);
499
+ const result = await this.wasmClient.updateActivity(decamelizeKeys(activity));
480
500
  return this.parseResponse(result);
481
501
  }
482
502
  /**
@@ -500,7 +520,7 @@ export class ModelHealthService {
500
520
  */
501
521
  async deleteActivity(activity) {
502
522
  this.ensureInitialized();
503
- await this.wasmClient.deleteActivity(activity);
523
+ await this.wasmClient.deleteActivity(decamelizeKeys(activity));
504
524
  }
505
525
  /**
506
526
  * Retrieves all available activity tags.
@@ -530,7 +550,7 @@ export class ModelHealthService {
530
550
  }
531
551
  // MARK: - Activities
532
552
  /**
533
- * Retrieves all movement activities associated with the authenticated account.
553
+ * Retrieves all movement activities associated with the account.
534
554
  *
535
555
  * Activities represent individual recording sessions and contain references to
536
556
  * captured videos and analysis results. Use this to review past data or
@@ -586,7 +606,7 @@ export class ModelHealthService {
586
606
  */
587
607
  async downloadActivityVideos(activity, version = "synced") {
588
608
  this.ensureInitialized();
589
- const result = await this.wasmClient.downloadTrialVideos(activity, version);
609
+ const result = await this.wasmClient.downloadTrialVideos(decamelizeKeys(activity), version);
590
610
  const videos = [];
591
611
  for (let i = 0; i < result.length; i++) {
592
612
  videos.push(new Uint8Array(result[i]));
@@ -614,7 +634,7 @@ export class ModelHealthService {
614
634
  * const results = await client.downloadActivityResultData(activity, ["kinematics_mot"]);
615
635
  *
616
636
  * for (const result of results) {
617
- * switch (result.result_data_type) {
637
+ * switch (result.resultDataType) {
618
638
  * case "kinematics_mot":
619
639
  * // Use result.data directly as a .mot file
620
640
  * break;
@@ -635,7 +655,7 @@ export class ModelHealthService {
635
655
  */
636
656
  async downloadActivityResultData(activity, dataTypes) {
637
657
  this.ensureInitialized();
638
- const result = await this.wasmClient.downloadActivityResultData(activity, dataTypes);
658
+ const result = await this.wasmClient.downloadActivityResultData(decamelizeKeys(activity), dataTypes);
639
659
  return this.parseResponse(result);
640
660
  }
641
661
  /**
@@ -654,7 +674,7 @@ export class ModelHealthService {
654
674
  * );
655
675
  *
656
676
  * for (const result of results) {
657
- * switch (result.result_data_type) {
677
+ * switch (result.resultDataType) {
658
678
  * case "metrics":
659
679
  * const json = JSON.parse(new TextDecoder().decode(result.data));
660
680
  * break;
@@ -672,7 +692,7 @@ export class ModelHealthService {
672
692
  */
673
693
  async downloadActivityAnalysisResultData(activity, dataTypes) {
674
694
  this.ensureInitialized();
675
- const result = await this.wasmClient.downloadTrialAnalysisResultData(activity, dataTypes);
695
+ const result = await this.wasmClient.downloadTrialAnalysisResultData(decamelizeKeys(activity), dataTypes);
676
696
  return this.parseResponse(result);
677
697
  }
678
698
  // MARK: - Recording & Analysis
@@ -699,7 +719,7 @@ export class ModelHealthService {
699
719
  */
700
720
  async record(activityName, session) {
701
721
  this.ensureInitialized();
702
- const result = await this.wasmClient.record(activityName, session);
722
+ const result = await this.wasmClient.record(activityName, decamelizeKeys(session));
703
723
  return this.parseResponse(result);
704
724
  }
705
725
  /**
@@ -718,7 +738,7 @@ export class ModelHealthService {
718
738
  */
719
739
  async stopRecording(session) {
720
740
  this.ensureInitialized();
721
- await this.wasmClient.stopRecording(session);
741
+ await this.wasmClient.stopRecording(decamelizeKeys(session));
722
742
  }
723
743
  /**
724
744
  * Retrieves the current processing status of an activity.
@@ -752,7 +772,7 @@ export class ModelHealthService {
752
772
  */
753
773
  async getStatus(activity) {
754
774
  this.ensureInitialized();
755
- const result = await this.wasmClient.getStatus(activity);
775
+ const result = await this.wasmClient.getStatus(decamelizeKeys(activity));
756
776
  return this.parseResponse(result);
757
777
  }
758
778
  /**
@@ -770,7 +790,7 @@ export class ModelHealthService {
770
790
  * @example
771
791
  * ```typescript
772
792
  * const task = await client.startAnalysis(
773
- * "counterMovementJump",
793
+ * AnalysisType.CounterMovementJump,
774
794
  * activity,
775
795
  * session
776
796
  * );
@@ -781,7 +801,7 @@ export class ModelHealthService {
781
801
  */
782
802
  async startAnalysis(analysisType, activity, session) {
783
803
  this.ensureInitialized();
784
- const result = await this.wasmClient.startAnalysis(analysisType, activity, session);
804
+ const result = await this.wasmClient.startAnalysis(analysisType, decamelizeKeys(activity), decamelizeKeys(session));
785
805
  return this.parseResponse(result);
786
806
  }
787
807
  /**
@@ -807,7 +827,7 @@ export class ModelHealthService {
807
827
  * activity,
808
828
  * ["metrics", "report"]
809
829
  * );
810
- * const metricsEntry = results.find((r) => r.result_data_type === "metrics");
830
+ * const metricsEntry = results.find((r) => r.resultDataType === "metrics");
811
831
  * if (metricsEntry?.data) {
812
832
  * const metrics = JSON.parse(new TextDecoder().decode(metricsEntry.data));
813
833
  * console.log("Metrics:", metrics);
@@ -821,22 +841,24 @@ export class ModelHealthService {
821
841
  */
822
842
  async getAnalysisStatus(task) {
823
843
  this.ensureInitialized();
824
- const result = await this.wasmClient.getAnalysisStatus(task);
844
+ const result = await this.wasmClient.getAnalysisStatus(decamelizeKeys(task));
825
845
  return this.parseResponse(result);
826
846
  }
827
847
  // MARK: - Utilities
828
848
  /**
829
- * Parse JSON response from WASM.
849
+ * Parse a WASM response and normalise object keys to camelCase.
850
+ *
851
+ * The WASM layer serialises Rust structs using snake_case field names.
852
+ * This method converts them to idiomatic TypeScript camelCase before
853
+ * returning to the caller.
830
854
  *
831
855
  * @private
832
- * @param value Value from WASM (may be string or object)
833
- * @returns Parsed TypeScript object
856
+ * @param value Value from WASM (JsValue or JSON string)
857
+ * @returns Parsed, camelised TypeScript object
834
858
  */
835
859
  parseResponse(value) {
836
- if (typeof value === "string") {
837
- return JSON.parse(value);
838
- }
839
- return value;
860
+ const parsed = typeof value === "string" ? JSON.parse(value) : value;
861
+ return camelizeKeys(parsed);
840
862
  }
841
863
  }
842
864
  // MARK: - Exports
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}