@sunsteel/contracts 0.6.0 → 0.7.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/dist/index.d.cts CHANGED
@@ -25,6 +25,7 @@ interface PaginatedResponse<T> {
25
25
  }
26
26
 
27
27
  interface UserProfile {
28
+ timeZone?: string | null;
28
29
  id: string;
29
30
  email: string;
30
31
  name: string;
@@ -293,4 +294,58 @@ interface WorkoutStatsResponse {
293
294
  activeDaysThisWeek: number;
294
295
  }
295
296
 
296
- export { type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type Exercise, type ExerciseId, type FinishStatus, type FinishWorkoutRequest, type IsoDateString, type ListSessionsParams, MUSCLE_GROUPS, type MuscleGroup, PROGRESSION_SCHEMES, type PaginatedResponse, type ProgressionScheme, type PublicUserProfile, REP_TYPES, type RepType, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SEXES, type SetLog, type Sex, type StartWorkoutRequest, type StartWorkoutResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UserId, type UserProfile, type UserSearchResponse, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
297
+ /** Stable successful response of GET /workouts/progress. */
298
+ interface WorkoutProgressQuery {
299
+ timeZone: string;
300
+ }
301
+ interface PersonalRecordEntry {
302
+ exerciseId: string;
303
+ exerciseName: string;
304
+ weight: number;
305
+ reps: number;
306
+ estimated1rm: number;
307
+ achievedAt: string;
308
+ }
309
+ interface RecentActivityEntry {
310
+ sessionId: string;
311
+ routineId: string;
312
+ routineName: string;
313
+ dayName: string;
314
+ startedAt: string;
315
+ endedAt: string | null;
316
+ durationSec: number | null;
317
+ totalVolumeKg: number;
318
+ completedSets: number;
319
+ }
320
+ interface WorkoutProgressResponse {
321
+ totalVolumeKg: number;
322
+ currentStreakDays: number;
323
+ bestStreakDays: number;
324
+ personalRecords: PersonalRecordEntry[];
325
+ recentActivity: RecentActivityEntry[];
326
+ }
327
+ /** Immutable prescription captured before any sets or progression. */
328
+ interface WorkoutSessionSnapshotV1 {
329
+ schemaVersion: 1;
330
+ sessionId: string;
331
+ sourceRoutineId: string;
332
+ sourceRoutineDayId: string;
333
+ capturedAt: string;
334
+ provenance: 'CAPTURED' | 'APPROXIMATED';
335
+ notes: string | null;
336
+ routine: NonNullable<WorkoutSession['routine']>;
337
+ routineDay: NonNullable<WorkoutSession['routineDay']>;
338
+ }
339
+ interface SetAccountTimeZoneRequest {
340
+ timeZone: string;
341
+ /** Bootstrap must not replace a zone registered by another device. */
342
+ onlyIfUnset?: boolean;
343
+ }
344
+ interface WorkoutAnalyticsStatus {
345
+ timeZone: string | null;
346
+ requestedTimeZone: string | null;
347
+ state: 'UNINITIALIZED' | 'BUILDING' | 'READY' | 'FAILED';
348
+ generationId: string | null;
349
+ }
350
+
351
+ export { type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type Exercise, type ExerciseId, type FinishStatus, type FinishWorkoutRequest, type IsoDateString, type ListSessionsParams, MUSCLE_GROUPS, type MuscleGroup, PROGRESSION_SCHEMES, type PaginatedResponse, type PersonalRecordEntry, type ProgressionScheme, type PublicUserProfile, REP_TYPES, type RecentActivityEntry, type RepType, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SEXES, type SetAccountTimeZoneRequest, type SetLog, type Sex, type StartWorkoutRequest, type StartWorkoutResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UserId, type UserProfile, type UserSearchResponse, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
package/dist/index.d.ts CHANGED
@@ -25,6 +25,7 @@ interface PaginatedResponse<T> {
25
25
  }
26
26
 
27
27
  interface UserProfile {
28
+ timeZone?: string | null;
28
29
  id: string;
29
30
  email: string;
30
31
  name: string;
@@ -293,4 +294,58 @@ interface WorkoutStatsResponse {
293
294
  activeDaysThisWeek: number;
294
295
  }
295
296
 
296
- export { type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type Exercise, type ExerciseId, type FinishStatus, type FinishWorkoutRequest, type IsoDateString, type ListSessionsParams, MUSCLE_GROUPS, type MuscleGroup, PROGRESSION_SCHEMES, type PaginatedResponse, type ProgressionScheme, type PublicUserProfile, REP_TYPES, type RepType, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SEXES, type SetLog, type Sex, type StartWorkoutRequest, type StartWorkoutResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UserId, type UserProfile, type UserSearchResponse, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
297
+ /** Stable successful response of GET /workouts/progress. */
298
+ interface WorkoutProgressQuery {
299
+ timeZone: string;
300
+ }
301
+ interface PersonalRecordEntry {
302
+ exerciseId: string;
303
+ exerciseName: string;
304
+ weight: number;
305
+ reps: number;
306
+ estimated1rm: number;
307
+ achievedAt: string;
308
+ }
309
+ interface RecentActivityEntry {
310
+ sessionId: string;
311
+ routineId: string;
312
+ routineName: string;
313
+ dayName: string;
314
+ startedAt: string;
315
+ endedAt: string | null;
316
+ durationSec: number | null;
317
+ totalVolumeKg: number;
318
+ completedSets: number;
319
+ }
320
+ interface WorkoutProgressResponse {
321
+ totalVolumeKg: number;
322
+ currentStreakDays: number;
323
+ bestStreakDays: number;
324
+ personalRecords: PersonalRecordEntry[];
325
+ recentActivity: RecentActivityEntry[];
326
+ }
327
+ /** Immutable prescription captured before any sets or progression. */
328
+ interface WorkoutSessionSnapshotV1 {
329
+ schemaVersion: 1;
330
+ sessionId: string;
331
+ sourceRoutineId: string;
332
+ sourceRoutineDayId: string;
333
+ capturedAt: string;
334
+ provenance: 'CAPTURED' | 'APPROXIMATED';
335
+ notes: string | null;
336
+ routine: NonNullable<WorkoutSession['routine']>;
337
+ routineDay: NonNullable<WorkoutSession['routineDay']>;
338
+ }
339
+ interface SetAccountTimeZoneRequest {
340
+ timeZone: string;
341
+ /** Bootstrap must not replace a zone registered by another device. */
342
+ onlyIfUnset?: boolean;
343
+ }
344
+ interface WorkoutAnalyticsStatus {
345
+ timeZone: string | null;
346
+ requestedTimeZone: string | null;
347
+ state: 'UNINITIALIZED' | 'BUILDING' | 'READY' | 'FAILED';
348
+ generationId: string | null;
349
+ }
350
+
351
+ export { type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type Exercise, type ExerciseId, type FinishStatus, type FinishWorkoutRequest, type IsoDateString, type ListSessionsParams, MUSCLE_GROUPS, type MuscleGroup, PROGRESSION_SCHEMES, type PaginatedResponse, type PersonalRecordEntry, type ProgressionScheme, type PublicUserProfile, REP_TYPES, type RecentActivityEntry, type RepType, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SEXES, type SetAccountTimeZoneRequest, type SetLog, type Sex, type StartWorkoutRequest, type StartWorkoutResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UserId, type UserProfile, type UserSearchResponse, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunsteel/contracts",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ezee969/sunsteel-contracts.git"