@sunsteel/contracts 0.29.0 → 0.31.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 CHANGED
@@ -44,6 +44,7 @@ __export(index_exports, {
44
44
  RELATIONSHIP_LIST_DEFAULT_LIMIT: () => RELATIONSHIP_LIST_DEFAULT_LIMIT,
45
45
  RELATIONSHIP_LIST_KINDS: () => RELATIONSHIP_LIST_KINDS,
46
46
  RELATIONSHIP_LIST_MAX_LIMIT: () => RELATIONSHIP_LIST_MAX_LIMIT,
47
+ RENAISSANCE_RANK_DEFINITIONS: () => RENAISSANCE_RANK_DEFINITIONS,
47
48
  REP_TYPES: () => REP_TYPES,
48
49
  RESERVED_USERNAMES: () => RESERVED_USERNAMES,
49
50
  SESSION_SHARE_DEFAULT_FIELDS: () => SESSION_SHARE_DEFAULT_FIELDS,
@@ -294,6 +295,50 @@ var ACHIEVEMENT_DEFINITIONS = ACHIEVEMENT_CATEGORIES.flatMap(
294
295
  description: descriptionFor(category, threshold)
295
296
  }))
296
297
  );
298
+ var RENAISSANCE_RANK_DEFINITIONS = [
299
+ {
300
+ id: "INITIATE",
301
+ title: "Initiate",
302
+ description: "Your place in the training ledger begins here.",
303
+ minimumSessions: 0,
304
+ minimumActiveWeeks: 0
305
+ },
306
+ {
307
+ id: "APPRENTICE",
308
+ title: "Apprentice",
309
+ description: "Learning the craft through regular practice.",
310
+ minimumSessions: 5,
311
+ minimumActiveWeeks: 3
312
+ },
313
+ {
314
+ id: "ARTISAN",
315
+ title: "Artisan",
316
+ description: "Building a dependable training practice.",
317
+ minimumSessions: 15,
318
+ minimumActiveWeeks: 8
319
+ },
320
+ {
321
+ id: "MAESTRO",
322
+ title: "Maestro",
323
+ description: "Sustaining purposeful work across many weeks.",
324
+ minimumSessions: 30,
325
+ minimumActiveWeeks: 16
326
+ },
327
+ {
328
+ id: "VIRTUOSO",
329
+ title: "Virtuoso",
330
+ description: "Showing enduring discipline through repeated seasons.",
331
+ minimumSessions: 60,
332
+ minimumActiveWeeks: 32
333
+ },
334
+ {
335
+ id: "LAUREATE",
336
+ title: "Laureate",
337
+ description: "A lasting training practice recorded in the ledger.",
338
+ minimumSessions: 100,
339
+ minimumActiveWeeks: 52
340
+ }
341
+ ];
297
342
 
298
343
  // src/workout.ts
299
344
  var SESSION_SHARE_FIELDS = [
@@ -350,6 +395,7 @@ var PROGRESS_TIMELINE_EVENT_TYPES = [
350
395
  RELATIONSHIP_LIST_DEFAULT_LIMIT,
351
396
  RELATIONSHIP_LIST_KINDS,
352
397
  RELATIONSHIP_LIST_MAX_LIMIT,
398
+ RENAISSANCE_RANK_DEFINITIONS,
353
399
  REP_TYPES,
354
400
  RESERVED_USERNAMES,
355
401
  SESSION_SHARE_DEFAULT_FIELDS,
package/dist/index.d.cts CHANGED
@@ -549,6 +549,8 @@ declare const PROGRESS_TIMELINE_EVENT_TYPES: readonly ["PERSONAL_RECORD", "PROGR
549
549
  type ProgressTimelineEventType = (typeof PROGRESS_TIMELINE_EVENT_TYPES)[number];
550
550
  interface ProgressTimelineQuery {
551
551
  type?: ProgressTimelineEventType;
552
+ /** Only events for one catalog exercise (EXER-01). */
553
+ exerciseId?: string;
552
554
  cursor?: string;
553
555
  limit?: number;
554
556
  }
@@ -949,12 +951,70 @@ interface EarnedAchievement extends AchievementDefinition {
949
951
  /** True when existing verified history was recognized after ACH-01 shipped. */
950
952
  backfilled: boolean;
951
953
  }
954
+ interface RenaissanceRankDefinition {
955
+ id: 'INITIATE' | 'APPRENTICE' | 'ARTISAN' | 'MAESTRO' | 'VIRTUOSO' | 'LAUREATE';
956
+ title: string;
957
+ description: string;
958
+ minimumSessions: number;
959
+ minimumActiveWeeks: number;
960
+ }
961
+ /**
962
+ * Stable rank ladder. Both requirements are intentionally based on attendance:
963
+ * completed sessions reward participation, while distinct active weeks reward
964
+ * consistency without encouraging consecutive-day training.
965
+ */
966
+ declare const RENAISSANCE_RANK_DEFINITIONS: readonly [{
967
+ readonly id: "INITIATE";
968
+ readonly title: "Initiate";
969
+ readonly description: "Your place in the training ledger begins here.";
970
+ readonly minimumSessions: 0;
971
+ readonly minimumActiveWeeks: 0;
972
+ }, {
973
+ readonly id: "APPRENTICE";
974
+ readonly title: "Apprentice";
975
+ readonly description: "Learning the craft through regular practice.";
976
+ readonly minimumSessions: 5;
977
+ readonly minimumActiveWeeks: 3;
978
+ }, {
979
+ readonly id: "ARTISAN";
980
+ readonly title: "Artisan";
981
+ readonly description: "Building a dependable training practice.";
982
+ readonly minimumSessions: 15;
983
+ readonly minimumActiveWeeks: 8;
984
+ }, {
985
+ readonly id: "MAESTRO";
986
+ readonly title: "Maestro";
987
+ readonly description: "Sustaining purposeful work across many weeks.";
988
+ readonly minimumSessions: 30;
989
+ readonly minimumActiveWeeks: 16;
990
+ }, {
991
+ readonly id: "VIRTUOSO";
992
+ readonly title: "Virtuoso";
993
+ readonly description: "Showing enduring discipline through repeated seasons.";
994
+ readonly minimumSessions: 60;
995
+ readonly minimumActiveWeeks: 32;
996
+ }, {
997
+ readonly id: "LAUREATE";
998
+ readonly title: "Laureate";
999
+ readonly description: "A lasting training practice recorded in the ledger.";
1000
+ readonly minimumSessions: 100;
1001
+ readonly minimumActiveWeeks: 52;
1002
+ }];
1003
+ interface RenaissanceRankProgress {
1004
+ currentRank: RenaissanceRankDefinition;
1005
+ nextRank: RenaissanceRankDefinition | null;
1006
+ completedSessions: number;
1007
+ activeWeeks: number;
1008
+ sessionsRemaining: number;
1009
+ activeWeeksRemaining: number;
1010
+ }
952
1011
  /** Stable successful response of GET /achievements. */
953
1012
  interface AchievementsResponse {
954
1013
  analyticsReady: boolean;
955
1014
  earnedCount: number;
956
1015
  availableCount: number;
957
1016
  achievements: EarnedAchievement[];
1017
+ rank: RenaissanceRankProgress | null;
958
1018
  }
959
1019
 
960
1020
  interface RoutineSet {
@@ -1021,4 +1081,4 @@ interface CreateRoutineRequest {
1021
1081
  }
1022
1082
  type UpdateRoutineRequest = Partial<CreateRoutineRequest>;
1023
1083
 
1024
- export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, 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, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, 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 };
1084
+ export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, 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 };
package/dist/index.d.ts CHANGED
@@ -549,6 +549,8 @@ declare const PROGRESS_TIMELINE_EVENT_TYPES: readonly ["PERSONAL_RECORD", "PROGR
549
549
  type ProgressTimelineEventType = (typeof PROGRESS_TIMELINE_EVENT_TYPES)[number];
550
550
  interface ProgressTimelineQuery {
551
551
  type?: ProgressTimelineEventType;
552
+ /** Only events for one catalog exercise (EXER-01). */
553
+ exerciseId?: string;
552
554
  cursor?: string;
553
555
  limit?: number;
554
556
  }
@@ -949,12 +951,70 @@ interface EarnedAchievement extends AchievementDefinition {
949
951
  /** True when existing verified history was recognized after ACH-01 shipped. */
950
952
  backfilled: boolean;
951
953
  }
954
+ interface RenaissanceRankDefinition {
955
+ id: 'INITIATE' | 'APPRENTICE' | 'ARTISAN' | 'MAESTRO' | 'VIRTUOSO' | 'LAUREATE';
956
+ title: string;
957
+ description: string;
958
+ minimumSessions: number;
959
+ minimumActiveWeeks: number;
960
+ }
961
+ /**
962
+ * Stable rank ladder. Both requirements are intentionally based on attendance:
963
+ * completed sessions reward participation, while distinct active weeks reward
964
+ * consistency without encouraging consecutive-day training.
965
+ */
966
+ declare const RENAISSANCE_RANK_DEFINITIONS: readonly [{
967
+ readonly id: "INITIATE";
968
+ readonly title: "Initiate";
969
+ readonly description: "Your place in the training ledger begins here.";
970
+ readonly minimumSessions: 0;
971
+ readonly minimumActiveWeeks: 0;
972
+ }, {
973
+ readonly id: "APPRENTICE";
974
+ readonly title: "Apprentice";
975
+ readonly description: "Learning the craft through regular practice.";
976
+ readonly minimumSessions: 5;
977
+ readonly minimumActiveWeeks: 3;
978
+ }, {
979
+ readonly id: "ARTISAN";
980
+ readonly title: "Artisan";
981
+ readonly description: "Building a dependable training practice.";
982
+ readonly minimumSessions: 15;
983
+ readonly minimumActiveWeeks: 8;
984
+ }, {
985
+ readonly id: "MAESTRO";
986
+ readonly title: "Maestro";
987
+ readonly description: "Sustaining purposeful work across many weeks.";
988
+ readonly minimumSessions: 30;
989
+ readonly minimumActiveWeeks: 16;
990
+ }, {
991
+ readonly id: "VIRTUOSO";
992
+ readonly title: "Virtuoso";
993
+ readonly description: "Showing enduring discipline through repeated seasons.";
994
+ readonly minimumSessions: 60;
995
+ readonly minimumActiveWeeks: 32;
996
+ }, {
997
+ readonly id: "LAUREATE";
998
+ readonly title: "Laureate";
999
+ readonly description: "A lasting training practice recorded in the ledger.";
1000
+ readonly minimumSessions: 100;
1001
+ readonly minimumActiveWeeks: 52;
1002
+ }];
1003
+ interface RenaissanceRankProgress {
1004
+ currentRank: RenaissanceRankDefinition;
1005
+ nextRank: RenaissanceRankDefinition | null;
1006
+ completedSessions: number;
1007
+ activeWeeks: number;
1008
+ sessionsRemaining: number;
1009
+ activeWeeksRemaining: number;
1010
+ }
952
1011
  /** Stable successful response of GET /achievements. */
953
1012
  interface AchievementsResponse {
954
1013
  analyticsReady: boolean;
955
1014
  earnedCount: number;
956
1015
  availableCount: number;
957
1016
  achievements: EarnedAchievement[];
1017
+ rank: RenaissanceRankProgress | null;
958
1018
  }
959
1019
 
960
1020
  interface RoutineSet {
@@ -1021,4 +1081,4 @@ interface CreateRoutineRequest {
1021
1081
  }
1022
1082
  type UpdateRoutineRequest = Partial<CreateRoutineRequest>;
1023
1083
 
1024
- export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, 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, REP_TYPES, RESERVED_USERNAMES, type RecentActivityEntry, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, 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 };
1084
+ export { ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, type AchievementCategory, 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 };
package/dist/index.js CHANGED
@@ -230,6 +230,50 @@ var ACHIEVEMENT_DEFINITIONS = ACHIEVEMENT_CATEGORIES.flatMap(
230
230
  description: descriptionFor(category, threshold)
231
231
  }))
232
232
  );
233
+ var RENAISSANCE_RANK_DEFINITIONS = [
234
+ {
235
+ id: "INITIATE",
236
+ title: "Initiate",
237
+ description: "Your place in the training ledger begins here.",
238
+ minimumSessions: 0,
239
+ minimumActiveWeeks: 0
240
+ },
241
+ {
242
+ id: "APPRENTICE",
243
+ title: "Apprentice",
244
+ description: "Learning the craft through regular practice.",
245
+ minimumSessions: 5,
246
+ minimumActiveWeeks: 3
247
+ },
248
+ {
249
+ id: "ARTISAN",
250
+ title: "Artisan",
251
+ description: "Building a dependable training practice.",
252
+ minimumSessions: 15,
253
+ minimumActiveWeeks: 8
254
+ },
255
+ {
256
+ id: "MAESTRO",
257
+ title: "Maestro",
258
+ description: "Sustaining purposeful work across many weeks.",
259
+ minimumSessions: 30,
260
+ minimumActiveWeeks: 16
261
+ },
262
+ {
263
+ id: "VIRTUOSO",
264
+ title: "Virtuoso",
265
+ description: "Showing enduring discipline through repeated seasons.",
266
+ minimumSessions: 60,
267
+ minimumActiveWeeks: 32
268
+ },
269
+ {
270
+ id: "LAUREATE",
271
+ title: "Laureate",
272
+ description: "A lasting training practice recorded in the ledger.",
273
+ minimumSessions: 100,
274
+ minimumActiveWeeks: 52
275
+ }
276
+ ];
233
277
 
234
278
  // src/workout.ts
235
279
  var SESSION_SHARE_FIELDS = [
@@ -285,6 +329,7 @@ export {
285
329
  RELATIONSHIP_LIST_DEFAULT_LIMIT,
286
330
  RELATIONSHIP_LIST_KINDS,
287
331
  RELATIONSHIP_LIST_MAX_LIMIT,
332
+ RENAISSANCE_RANK_DEFINITIONS,
288
333
  REP_TYPES,
289
334
  RESERVED_USERNAMES,
290
335
  SESSION_SHARE_DEFAULT_FIELDS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunsteel/contracts",
3
- "version": "0.29.0",
3
+ "version": "0.31.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ezee969/sunsteel-contracts.git"