@sunsteel/contracts 0.32.0 → 0.34.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.cjs +15 -0
- package/dist/index.d.cts +67 -1
- package/dist/index.d.ts +67 -1
- package/dist/index.js +10 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -32,6 +32,10 @@ __export(index_exports, {
|
|
|
32
32
|
MEASURABLE_GOAL_TYPES: () => MEASURABLE_GOAL_TYPES,
|
|
33
33
|
MOVEMENT_PATTERNS: () => MOVEMENT_PATTERNS,
|
|
34
34
|
MUSCLE_GROUPS: () => MUSCLE_GROUPS,
|
|
35
|
+
PLATEAU_MIN_DAYS_SINCE_BEST: () => PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
36
|
+
PLATEAU_MIN_SESSIONS: () => PLATEAU_MIN_SESSIONS,
|
|
37
|
+
PLATEAU_RECENT_DAYS: () => PLATEAU_RECENT_DAYS,
|
|
38
|
+
PLATEAU_WINDOW_DAYS: () => PLATEAU_WINDOW_DAYS,
|
|
35
39
|
PREFERRED_TRAINING_STYLE_VALUES: () => PREFERRED_TRAINING_STYLE_VALUES,
|
|
36
40
|
PROFILE_BIO_MAX_LENGTH: () => PROFILE_BIO_MAX_LENGTH,
|
|
37
41
|
PROFILE_FAVORITE_EXERCISES_MAX: () => PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -51,6 +55,7 @@ __export(index_exports, {
|
|
|
51
55
|
SESSION_SHARE_FIELDS: () => SESSION_SHARE_FIELDS,
|
|
52
56
|
SESSION_SHARE_MAX_ACTIVE_LINKS: () => SESSION_SHARE_MAX_ACTIVE_LINKS,
|
|
53
57
|
SEXES: () => SEXES,
|
|
58
|
+
STARRED_EXERCISES_MAX: () => STARRED_EXERCISES_MAX,
|
|
54
59
|
TRAINING_DISCIPLINE_VALUES: () => TRAINING_DISCIPLINE_VALUES,
|
|
55
60
|
TRAINING_EVENT_TYPES: () => TRAINING_EVENT_TYPES,
|
|
56
61
|
TRAINING_EXPERIENCE_LEVEL_VALUES: () => TRAINING_EXPERIENCE_LEVEL_VALUES,
|
|
@@ -228,6 +233,7 @@ var EXERCISE_EQUIPMENT = [
|
|
|
228
233
|
"dip-station",
|
|
229
234
|
"bodyweight"
|
|
230
235
|
];
|
|
236
|
+
var STARRED_EXERCISES_MAX = 100;
|
|
231
237
|
|
|
232
238
|
// src/goals.ts
|
|
233
239
|
var MEASURABLE_GOAL_TYPES = [
|
|
@@ -369,6 +375,10 @@ var PROGRESS_TIMELINE_EVENT_TYPES = [
|
|
|
369
375
|
"PERSONAL_RECORD",
|
|
370
376
|
"PROGRESSION_CHANGED"
|
|
371
377
|
];
|
|
378
|
+
var PLATEAU_WINDOW_DAYS = 56;
|
|
379
|
+
var PLATEAU_MIN_SESSIONS = 4;
|
|
380
|
+
var PLATEAU_MIN_DAYS_SINCE_BEST = 21;
|
|
381
|
+
var PLATEAU_RECENT_DAYS = 21;
|
|
372
382
|
// Annotate the CommonJS export names for ESM import in node:
|
|
373
383
|
0 && (module.exports = {
|
|
374
384
|
ACHIEVEMENT_CATEGORIES,
|
|
@@ -383,6 +393,10 @@ var PROGRESS_TIMELINE_EVENT_TYPES = [
|
|
|
383
393
|
MEASURABLE_GOAL_TYPES,
|
|
384
394
|
MOVEMENT_PATTERNS,
|
|
385
395
|
MUSCLE_GROUPS,
|
|
396
|
+
PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
397
|
+
PLATEAU_MIN_SESSIONS,
|
|
398
|
+
PLATEAU_RECENT_DAYS,
|
|
399
|
+
PLATEAU_WINDOW_DAYS,
|
|
386
400
|
PREFERRED_TRAINING_STYLE_VALUES,
|
|
387
401
|
PROFILE_BIO_MAX_LENGTH,
|
|
388
402
|
PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -402,6 +416,7 @@ var PROGRESS_TIMELINE_EVENT_TYPES = [
|
|
|
402
416
|
SESSION_SHARE_FIELDS,
|
|
403
417
|
SESSION_SHARE_MAX_ACTIVE_LINKS,
|
|
404
418
|
SEXES,
|
|
419
|
+
STARRED_EXERCISES_MAX,
|
|
405
420
|
TRAINING_DISCIPLINE_VALUES,
|
|
406
421
|
TRAINING_EVENT_TYPES,
|
|
407
422
|
TRAINING_EXPERIENCE_LEVEL_VALUES,
|
package/dist/index.d.cts
CHANGED
|
@@ -614,6 +614,55 @@ interface WorkoutAnalyticsStatus {
|
|
|
614
614
|
state: 'UNINITIALIZED' | 'BUILDING' | 'READY' | 'FAILED';
|
|
615
615
|
generationId: string | null;
|
|
616
616
|
}
|
|
617
|
+
/**
|
|
618
|
+
* Thresholds behind every plateau. A lift is flagged only when all hold: at
|
|
619
|
+
* least `PLATEAU_MIN_SESSIONS` terminal sessions with completed loaded sets
|
|
620
|
+
* of it since its current best (the session that set the best excluded, and
|
|
621
|
+
* counting only inside the look-back window), the best is at least
|
|
622
|
+
* `PLATEAU_MIN_DAYS_SINCE_BEST` days old, and the lift was trained within the
|
|
623
|
+
* last `PLATEAU_RECENT_DAYS` days. They describe numbers, never a cause.
|
|
624
|
+
*/
|
|
625
|
+
declare const PLATEAU_WINDOW_DAYS = 56;
|
|
626
|
+
declare const PLATEAU_MIN_SESSIONS = 4;
|
|
627
|
+
declare const PLATEAU_MIN_DAYS_SINCE_BEST = 21;
|
|
628
|
+
declare const PLATEAU_RECENT_DAYS = 21;
|
|
629
|
+
interface PlateauSet {
|
|
630
|
+
weightKg: number;
|
|
631
|
+
reps: number;
|
|
632
|
+
estimated1rmKg: number;
|
|
633
|
+
}
|
|
634
|
+
interface ExercisePlateau {
|
|
635
|
+
exerciseId: string;
|
|
636
|
+
exerciseName: string;
|
|
637
|
+
/** The persisted best-set frontier. */
|
|
638
|
+
best: PlateauSet & {
|
|
639
|
+
achievedAt: IsoDateString;
|
|
640
|
+
};
|
|
641
|
+
/** Sessions were counted from the later of the best and the window start. */
|
|
642
|
+
countedSince: IsoDateString;
|
|
643
|
+
sessionsWithoutNewBest: number;
|
|
644
|
+
/** The set since then with the highest estimated 1RM (latest on ties). */
|
|
645
|
+
closest: PlateauSet & {
|
|
646
|
+
performedAt: IsoDateString;
|
|
647
|
+
};
|
|
648
|
+
/** closest.estimated1rmKg / best.estimated1rmKg. */
|
|
649
|
+
closestRatio: number;
|
|
650
|
+
lastPerformedAt: IsoDateString;
|
|
651
|
+
}
|
|
652
|
+
/** Stable successful response of GET /workouts/progress/plateaus. */
|
|
653
|
+
interface PlateausResponse {
|
|
654
|
+
asOf: IsoDateString;
|
|
655
|
+
thresholds: {
|
|
656
|
+
windowDays: number;
|
|
657
|
+
minSessions: number;
|
|
658
|
+
minDaysSinceBest: number;
|
|
659
|
+
recentDays: number;
|
|
660
|
+
};
|
|
661
|
+
/** Lifts with a best set that were trained within the recent days. */
|
|
662
|
+
checkedExercises: number;
|
|
663
|
+
/** Longest-running first: most sessions without a new best. */
|
|
664
|
+
plateaus: ExercisePlateau[];
|
|
665
|
+
}
|
|
617
666
|
|
|
618
667
|
declare const USERNAME_MIN_LENGTH = 3;
|
|
619
668
|
declare const USERNAME_MAX_LENGTH = 30;
|
|
@@ -876,6 +925,23 @@ interface Exercise {
|
|
|
876
925
|
createdAt: IsoDateString;
|
|
877
926
|
updatedAt: IsoDateString;
|
|
878
927
|
}
|
|
928
|
+
/**
|
|
929
|
+
* The most catalog exercises one account can star. Starring is a private
|
|
930
|
+
* working preference that orders pickers; it is separate from the public
|
|
931
|
+
* favorite exercises on the training identity.
|
|
932
|
+
*/
|
|
933
|
+
declare const STARRED_EXERCISES_MAX = 100;
|
|
934
|
+
interface StarredExercise {
|
|
935
|
+
exerciseId: string;
|
|
936
|
+
starredAt: IsoDateString;
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Response of GET /exercises/starred and of PUT/DELETE
|
|
940
|
+
* /exercises/:id/star. Newest first.
|
|
941
|
+
*/
|
|
942
|
+
interface StarredExercisesResponse {
|
|
943
|
+
items: StarredExercise[];
|
|
944
|
+
}
|
|
879
945
|
|
|
880
946
|
declare const MEASURABLE_GOAL_TYPES: readonly ["WEEKLY_SESSIONS", "WEEKLY_VOLUME", "STREAK_DAYS", "EXERCISE_ESTIMATED_1RM", "BODY_WEIGHT"];
|
|
881
947
|
type MeasurableGoalType = (typeof MEASURABLE_GOAL_TYPES)[number];
|
|
@@ -1092,4 +1158,4 @@ interface CreateRoutineRequest {
|
|
|
1092
1158
|
}
|
|
1093
1159
|
type UpdateRoutineRequest = Partial<CreateRoutineRequest>;
|
|
1094
1160
|
|
|
1095
|
-
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementUnlockedEventPayload, type AchievementsResponse, type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateSessionShareRequest, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordEntry, type PersonalRecordKind, type PlatePairInventory, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicTrainingSummary, type PublicUserProfile, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionExerciseSubstitution, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetLog, type Sex, type SharedSessionOwner, type SharedSessionRecap, type StartWorkoutRequest, type StartWorkoutResponse, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
|
|
1161
|
+
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementUnlockedEventPayload, type AchievementsResponse, type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateSessionShareRequest, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordEntry, type PersonalRecordKind, type PlatePairInventory, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicTrainingSummary, type PublicUserProfile, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, STARRED_EXERCISES_MAX, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionExerciseSubstitution, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetLog, type Sex, type SharedSessionOwner, type SharedSessionRecap, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
|
package/dist/index.d.ts
CHANGED
|
@@ -614,6 +614,55 @@ interface WorkoutAnalyticsStatus {
|
|
|
614
614
|
state: 'UNINITIALIZED' | 'BUILDING' | 'READY' | 'FAILED';
|
|
615
615
|
generationId: string | null;
|
|
616
616
|
}
|
|
617
|
+
/**
|
|
618
|
+
* Thresholds behind every plateau. A lift is flagged only when all hold: at
|
|
619
|
+
* least `PLATEAU_MIN_SESSIONS` terminal sessions with completed loaded sets
|
|
620
|
+
* of it since its current best (the session that set the best excluded, and
|
|
621
|
+
* counting only inside the look-back window), the best is at least
|
|
622
|
+
* `PLATEAU_MIN_DAYS_SINCE_BEST` days old, and the lift was trained within the
|
|
623
|
+
* last `PLATEAU_RECENT_DAYS` days. They describe numbers, never a cause.
|
|
624
|
+
*/
|
|
625
|
+
declare const PLATEAU_WINDOW_DAYS = 56;
|
|
626
|
+
declare const PLATEAU_MIN_SESSIONS = 4;
|
|
627
|
+
declare const PLATEAU_MIN_DAYS_SINCE_BEST = 21;
|
|
628
|
+
declare const PLATEAU_RECENT_DAYS = 21;
|
|
629
|
+
interface PlateauSet {
|
|
630
|
+
weightKg: number;
|
|
631
|
+
reps: number;
|
|
632
|
+
estimated1rmKg: number;
|
|
633
|
+
}
|
|
634
|
+
interface ExercisePlateau {
|
|
635
|
+
exerciseId: string;
|
|
636
|
+
exerciseName: string;
|
|
637
|
+
/** The persisted best-set frontier. */
|
|
638
|
+
best: PlateauSet & {
|
|
639
|
+
achievedAt: IsoDateString;
|
|
640
|
+
};
|
|
641
|
+
/** Sessions were counted from the later of the best and the window start. */
|
|
642
|
+
countedSince: IsoDateString;
|
|
643
|
+
sessionsWithoutNewBest: number;
|
|
644
|
+
/** The set since then with the highest estimated 1RM (latest on ties). */
|
|
645
|
+
closest: PlateauSet & {
|
|
646
|
+
performedAt: IsoDateString;
|
|
647
|
+
};
|
|
648
|
+
/** closest.estimated1rmKg / best.estimated1rmKg. */
|
|
649
|
+
closestRatio: number;
|
|
650
|
+
lastPerformedAt: IsoDateString;
|
|
651
|
+
}
|
|
652
|
+
/** Stable successful response of GET /workouts/progress/plateaus. */
|
|
653
|
+
interface PlateausResponse {
|
|
654
|
+
asOf: IsoDateString;
|
|
655
|
+
thresholds: {
|
|
656
|
+
windowDays: number;
|
|
657
|
+
minSessions: number;
|
|
658
|
+
minDaysSinceBest: number;
|
|
659
|
+
recentDays: number;
|
|
660
|
+
};
|
|
661
|
+
/** Lifts with a best set that were trained within the recent days. */
|
|
662
|
+
checkedExercises: number;
|
|
663
|
+
/** Longest-running first: most sessions without a new best. */
|
|
664
|
+
plateaus: ExercisePlateau[];
|
|
665
|
+
}
|
|
617
666
|
|
|
618
667
|
declare const USERNAME_MIN_LENGTH = 3;
|
|
619
668
|
declare const USERNAME_MAX_LENGTH = 30;
|
|
@@ -876,6 +925,23 @@ interface Exercise {
|
|
|
876
925
|
createdAt: IsoDateString;
|
|
877
926
|
updatedAt: IsoDateString;
|
|
878
927
|
}
|
|
928
|
+
/**
|
|
929
|
+
* The most catalog exercises one account can star. Starring is a private
|
|
930
|
+
* working preference that orders pickers; it is separate from the public
|
|
931
|
+
* favorite exercises on the training identity.
|
|
932
|
+
*/
|
|
933
|
+
declare const STARRED_EXERCISES_MAX = 100;
|
|
934
|
+
interface StarredExercise {
|
|
935
|
+
exerciseId: string;
|
|
936
|
+
starredAt: IsoDateString;
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Response of GET /exercises/starred and of PUT/DELETE
|
|
940
|
+
* /exercises/:id/star. Newest first.
|
|
941
|
+
*/
|
|
942
|
+
interface StarredExercisesResponse {
|
|
943
|
+
items: StarredExercise[];
|
|
944
|
+
}
|
|
879
945
|
|
|
880
946
|
declare const MEASURABLE_GOAL_TYPES: readonly ["WEEKLY_SESSIONS", "WEEKLY_VOLUME", "STREAK_DAYS", "EXERCISE_ESTIMATED_1RM", "BODY_WEIGHT"];
|
|
881
947
|
type MeasurableGoalType = (typeof MEASURABLE_GOAL_TYPES)[number];
|
|
@@ -1092,4 +1158,4 @@ interface CreateRoutineRequest {
|
|
|
1092
1158
|
}
|
|
1093
1159
|
type UpdateRoutineRequest = Partial<CreateRoutineRequest>;
|
|
1094
1160
|
|
|
1095
|
-
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementUnlockedEventPayload, type AchievementsResponse, type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateSessionShareRequest, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordEntry, type PersonalRecordKind, type PlatePairInventory, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicTrainingSummary, type PublicUserProfile, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionExerciseSubstitution, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetLog, type Sex, type SharedSessionOwner, type SharedSessionRecap, type StartWorkoutRequest, type StartWorkoutResponse, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
|
|
1161
|
+
export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementUnlockedEventPayload, type AchievementsResponse, type Brand, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateSessionShareRequest, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type Exercise, type ExerciseEquipment, type ExerciseId, type ExerciseMechanic, type ExercisePerformanceHistoryQuery, type ExercisePerformanceHistoryResponse, type ExercisePerformancePrescription, type ExercisePerformancePrescriptionSet, type ExercisePerformanceSession, type ExercisePerformanceSet, type ExercisePerformanceSummary, type ExercisePlateau, type ExerciseStrengthSummary, type ExerciseStrengthTrendPoint, type ExerciseStrengthTrendQuery, type ExerciseStrengthTrendResponse, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FinishStatus, type FinishWorkoutRequest, type FinishWorkoutResponse, type FollowSuggestion, type FollowSuggestionReason, type FollowSuggestionsResponse, type IsoDateString, type ListSessionsParams, MEASURABLE_GOALS_MAX, MEASURABLE_GOAL_DIRECTIONS, MEASURABLE_GOAL_TYPES, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_RECENT_DAYS, PLATEAU_WINDOW_DAYS, PREFERRED_TRAINING_STYLE_VALUES, PROFILE_BIO_MAX_LENGTH, PROFILE_FAVORITE_EXERCISES_MAX, PROFILE_LOCATION_MAX_LENGTH, PROFILE_TRAINING_DISCIPLINES_MAX, PROFILE_TRAINING_GOALS_MAX, PROFILE_VISIBILITY_VALUES, PROGRESSION_SCHEMES, PROGRESS_TIMELINE_EVENT_TYPES, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordEntry, type PersonalRecordKind, type PlatePairInventory, type PlateauSet, type PlateausResponse, type PreferredTrainingStyle, type PreviousPerformanceResponse, type PreviousSessionRecap, type PreviousSetPerformance, type ProfileDiscoverySettings, type ProfileFavoriteExercise, type ProfilePrivacySettings, type ProfileViewerAccess, type ProfileVisibility, type ProgressTimelineEventType, type ProgressTimelineItem, type ProgressTimelinePersonalRecordItem, type ProgressTimelineProgressionItem, type ProgressTimelineQuery, type ProgressTimelineRecordPerformance, type ProgressTimelineRecordReason, type ProgressTimelineResponse, type ProgressTimelineSessionContext, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicTrainingSummary, type PublicUserProfile, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepType, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type Routine, type RoutineDay, type RoutineDayId, type RoutineExercise, type RoutineId, type RoutineSet, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, STARRED_EXERCISES_MAX, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionExerciseSubstitution, type SessionRecapRecord, type SessionShare, type SessionShareField, type SessionShareListResponse, type SetAccountTimeZoneRequest, type SetLog, type Sex, type SharedSessionOwner, type SharedSessionRecap, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpsertSetLogRequest, type UpsertSetLogResponse, type UserId, type UserProfile, type UserSearchResponse, type VolumeTrendPoint, type VolumeTrendQuery, type VolumeTrendResponse, type VolumeTrendSeries, WEIGHT_UNITS, WORKOUT_SESSION_STATUSES, type WeightUnit, type WorkoutAnalyticsStatus, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutStatsQuery, type WorkoutStatsResponse };
|
package/dist/index.js
CHANGED
|
@@ -163,6 +163,7 @@ var EXERCISE_EQUIPMENT = [
|
|
|
163
163
|
"dip-station",
|
|
164
164
|
"bodyweight"
|
|
165
165
|
];
|
|
166
|
+
var STARRED_EXERCISES_MAX = 100;
|
|
166
167
|
|
|
167
168
|
// src/goals.ts
|
|
168
169
|
var MEASURABLE_GOAL_TYPES = [
|
|
@@ -304,6 +305,10 @@ var PROGRESS_TIMELINE_EVENT_TYPES = [
|
|
|
304
305
|
"PERSONAL_RECORD",
|
|
305
306
|
"PROGRESSION_CHANGED"
|
|
306
307
|
];
|
|
308
|
+
var PLATEAU_WINDOW_DAYS = 56;
|
|
309
|
+
var PLATEAU_MIN_SESSIONS = 4;
|
|
310
|
+
var PLATEAU_MIN_DAYS_SINCE_BEST = 21;
|
|
311
|
+
var PLATEAU_RECENT_DAYS = 21;
|
|
307
312
|
export {
|
|
308
313
|
ACHIEVEMENT_CATEGORIES,
|
|
309
314
|
ACHIEVEMENT_DEFINITIONS,
|
|
@@ -317,6 +322,10 @@ export {
|
|
|
317
322
|
MEASURABLE_GOAL_TYPES,
|
|
318
323
|
MOVEMENT_PATTERNS,
|
|
319
324
|
MUSCLE_GROUPS,
|
|
325
|
+
PLATEAU_MIN_DAYS_SINCE_BEST,
|
|
326
|
+
PLATEAU_MIN_SESSIONS,
|
|
327
|
+
PLATEAU_RECENT_DAYS,
|
|
328
|
+
PLATEAU_WINDOW_DAYS,
|
|
320
329
|
PREFERRED_TRAINING_STYLE_VALUES,
|
|
321
330
|
PROFILE_BIO_MAX_LENGTH,
|
|
322
331
|
PROFILE_FAVORITE_EXERCISES_MAX,
|
|
@@ -336,6 +345,7 @@ export {
|
|
|
336
345
|
SESSION_SHARE_FIELDS,
|
|
337
346
|
SESSION_SHARE_MAX_ACTIVE_LINKS,
|
|
338
347
|
SEXES,
|
|
348
|
+
STARRED_EXERCISES_MAX,
|
|
339
349
|
TRAINING_DISCIPLINE_VALUES,
|
|
340
350
|
TRAINING_EVENT_TYPES,
|
|
341
351
|
TRAINING_EXPERIENCE_LEVEL_VALUES,
|