@sunsteel/contracts 0.68.0 → 0.70.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
@@ -140,12 +140,15 @@ __export(index_exports, {
140
140
  SESSION_SHARE_DEFAULT_FIELDS: () => SESSION_SHARE_DEFAULT_FIELDS,
141
141
  SESSION_SHARE_FIELDS: () => SESSION_SHARE_FIELDS,
142
142
  SESSION_SHARE_MAX_ACTIVE_LINKS: () => SESSION_SHARE_MAX_ACTIVE_LINKS,
143
+ SET_KINDS: () => SET_KINDS,
144
+ SET_KIND_LABELS: () => SET_KIND_LABELS,
143
145
  SEXES: () => SEXES,
144
146
  SHARED_ROUTINE_SOURCES: () => SHARED_ROUTINE_SOURCES,
145
147
  STARRED_EXERCISES_MAX: () => STARRED_EXERCISES_MAX,
146
148
  STREAK_MAX_GAP_DAYS: () => STREAK_MAX_GAP_DAYS,
147
149
  TEMPORARY_OVERRIDE_KINDS: () => TEMPORARY_OVERRIDE_KINDS,
148
150
  TEMPORARY_OVERRIDE_SOURCE_KINDS: () => TEMPORARY_OVERRIDE_SOURCE_KINDS,
151
+ TRAINING_BLOCK_COMPARISON_MAX_DAYS: () => TRAINING_BLOCK_COMPARISON_MAX_DAYS,
149
152
  TRAINING_DISCIPLINE_VALUES: () => TRAINING_DISCIPLINE_VALUES,
150
153
  TRAINING_EVENT_TYPES: () => TRAINING_EVENT_TYPES,
151
154
  TRAINING_EXPERIENCE_LEVEL_VALUES: () => TRAINING_EXPERIENCE_LEVEL_VALUES,
@@ -174,13 +177,18 @@ __export(index_exports, {
174
177
  WORKOUT_SESSION_STATUSES: () => WORKOUT_SESSION_STATUSES,
175
178
  accountExportFileName: () => accountExportFileName,
176
179
  applyDeload: () => applyDeload,
180
+ countsAsWork: () => countsAsWork,
181
+ countsForProgression: () => countsForProgression,
177
182
  deloadLengthDays: () => deloadLengthDays,
183
+ isSetKind: () => isSetKind,
178
184
  isWithinQuietHours: () => isWithinQuietHours,
179
185
  matchesDeletionConfirmation: () => matchesDeletionConfirmation,
186
+ requiredToFinish: () => requiredToFinish,
180
187
  resolveActiveTrainingBlock: () => resolveActiveTrainingBlock,
181
188
  resolveRoutinePlan: () => resolveRoutinePlan,
182
189
  routineDayLabel: () => routineDayLabel,
183
190
  sessionCorrectionWindow: () => sessionCorrectionWindow,
191
+ setKindOf: () => setKindOf,
184
192
  setLogValuesDiffer: () => setLogValuesDiffer,
185
193
  trainingBlockCovers: () => trainingBlockCovers
186
194
  });
@@ -510,6 +518,32 @@ var COMEBACK_WINDOW_DAYS = 14;
510
518
  var COMEBACK_SESSION_LOOKBACK = 500;
511
519
  var COMEBACK_RECOGNITION_LIMIT = 20;
512
520
 
521
+ // src/set-kinds.ts
522
+ var SET_KINDS = ["WORKING", "WARMUP", "DROP", "OPTIONAL"];
523
+ var SET_KIND_LABELS = {
524
+ WORKING: "Working",
525
+ WARMUP: "Warm-up",
526
+ DROP: "Drop",
527
+ OPTIONAL: "Optional"
528
+ };
529
+ function isSetKind(value) {
530
+ return SET_KINDS.includes(value);
531
+ }
532
+ function setKindOf(item) {
533
+ return item?.kind ?? "WORKING";
534
+ }
535
+ function countsAsWork(kind) {
536
+ return (kind ?? "WORKING") !== "WARMUP";
537
+ }
538
+ function countsForProgression(kind) {
539
+ const k = kind ?? "WORKING";
540
+ return k === "WORKING" || k === "OPTIONAL";
541
+ }
542
+ function requiredToFinish(kind) {
543
+ const k = kind ?? "WORKING";
544
+ return k === "WORKING" || k === "DROP";
545
+ }
546
+
513
547
  // src/routine.ts
514
548
  var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
515
549
  var ROUTINE_DAYS_MAX = 7;
@@ -631,13 +665,18 @@ var lighterOnGrid = (original, target, increment) => {
631
665
  const stepped = Math.round(Math.round(target / step) * step * 1e3) / 1e3;
632
666
  return stepped > 0 && stepped < original ? stepped : original;
633
667
  };
668
+ function halveSets(sets) {
669
+ const work = sets.filter((set) => countsAsWork(set.kind));
670
+ const keep = new Set(work.slice(0, Math.ceil(work.length / 2)));
671
+ return sets.filter((set) => !countsAsWork(set.kind) || keep.has(set)).map((set, index) => ({ ...set, setNumber: index + 1 }));
672
+ }
634
673
  function applyDeload(setup, options) {
635
674
  const factor = 1 - options.loadReductionPercent / 100;
636
675
  let lighter = false;
637
676
  const days = setup.days.map((day) => ({
638
677
  ...day,
639
678
  exercises: day.exercises.map((exercise) => {
640
- const kept = options.setMode === "HALF" ? exercise.sets.slice(0, Math.ceil(exercise.sets.length / 2)) : exercise.sets;
679
+ const kept = options.setMode === "HALF" ? halveSets(exercise.sets) : exercise.sets;
641
680
  if (kept.length < exercise.sets.length) lighter = true;
642
681
  return {
643
682
  ...exercise,
@@ -817,6 +856,9 @@ var TRAINING_SIGNAL_MIN_DECLINE = 0.025;
817
856
  var TRAINING_SIGNAL_DECLINES_MAX = 5;
818
857
  var TRAINING_SIGNAL_WORKOUT_DROP = 2;
819
858
 
859
+ // src/training-block-comparison.ts
860
+ var TRAINING_BLOCK_COMPARISON_MAX_DAYS = 365;
861
+
820
862
  // src/notifications.ts
821
863
  var NOTIFICATION_KINDS = [
822
864
  "ACHIEVEMENT",
@@ -1030,12 +1072,15 @@ function accountExportFileName(username, exportedAt) {
1030
1072
  SESSION_SHARE_DEFAULT_FIELDS,
1031
1073
  SESSION_SHARE_FIELDS,
1032
1074
  SESSION_SHARE_MAX_ACTIVE_LINKS,
1075
+ SET_KINDS,
1076
+ SET_KIND_LABELS,
1033
1077
  SEXES,
1034
1078
  SHARED_ROUTINE_SOURCES,
1035
1079
  STARRED_EXERCISES_MAX,
1036
1080
  STREAK_MAX_GAP_DAYS,
1037
1081
  TEMPORARY_OVERRIDE_KINDS,
1038
1082
  TEMPORARY_OVERRIDE_SOURCE_KINDS,
1083
+ TRAINING_BLOCK_COMPARISON_MAX_DAYS,
1039
1084
  TRAINING_DISCIPLINE_VALUES,
1040
1085
  TRAINING_EVENT_TYPES,
1041
1086
  TRAINING_EXPERIENCE_LEVEL_VALUES,
@@ -1064,13 +1109,18 @@ function accountExportFileName(username, exportedAt) {
1064
1109
  WORKOUT_SESSION_STATUSES,
1065
1110
  accountExportFileName,
1066
1111
  applyDeload,
1112
+ countsAsWork,
1113
+ countsForProgression,
1067
1114
  deloadLengthDays,
1115
+ isSetKind,
1068
1116
  isWithinQuietHours,
1069
1117
  matchesDeletionConfirmation,
1118
+ requiredToFinish,
1070
1119
  resolveActiveTrainingBlock,
1071
1120
  resolveRoutinePlan,
1072
1121
  routineDayLabel,
1073
1122
  sessionCorrectionWindow,
1123
+ setKindOf,
1074
1124
  setLogValuesDiffer,
1075
1125
  trainingBlockCovers
1076
1126
  });
package/dist/index.d.cts CHANGED
@@ -24,6 +24,27 @@ interface PaginatedResponse<T> {
24
24
  nextCursor?: string;
25
25
  }
26
26
 
27
+ declare const SET_KINDS: readonly ["WORKING", "WARMUP", "DROP", "OPTIONAL"];
28
+ type SetKind = (typeof SET_KINDS)[number];
29
+ declare const SET_KIND_LABELS: Record<SetKind, string>;
30
+ declare function isSetKind(value: unknown): value is SetKind;
31
+ /** The kind of a set or set log, defaulting to a working set. */
32
+ declare function setKindOf(item?: {
33
+ kind?: SetKind | null;
34
+ } | null): SetKind;
35
+ /**
36
+ * Whether a completed set counts as work: volume, completed sets, muscles,
37
+ * records, achievements and every Progress read. A warm-up never does.
38
+ */
39
+ declare function countsAsWork(kind?: SetKind | null): boolean;
40
+ /**
41
+ * Whether a set takes part in progression and the rep-target signals. Only
42
+ * working and optional sets do; an optional set only once it was done.
43
+ */
44
+ declare function countsForProgression(kind?: SetKind | null): boolean;
45
+ /** Whether a set must be done before a workout finishes without a prompt. */
46
+ declare function requiredToFinish(kind?: SetKind | null): boolean;
47
+
27
48
  /** A local calendar date, YYYY-MM-DD. */
28
49
  type CalendarDate = string;
29
50
  /**
@@ -367,6 +388,8 @@ interface RoutineSet {
367
388
  maxReps?: number | null;
368
389
  weight?: number | null;
369
390
  rir?: number | null;
391
+ /** LIVE-12; absent means a working set. */
392
+ kind?: SetKind;
370
393
  }
371
394
  interface RoutineExercise {
372
395
  id: string;
@@ -586,15 +609,6 @@ interface DeloadOptions {
586
609
  }
587
610
  /** Why a deload cannot be made from a prescription with these options. */
588
611
  declare const DELOAD_NOT_LIGHTER = "Those options leave every set as it is: choose a lighter load or fewer sets";
589
- /**
590
- * ROUT-16's one rule for what a deload is, shared so the preview the owner
591
- * reviews and the prescription the server stores cannot disagree: every load
592
- * drops by the chosen percentage, rounded to the exercise's own increment
593
- * (a load whose grid cannot express the cut keeps its weight), and `HALF` keeps the first half of each
594
- * exercise's sets (rounded up, so one set stays one). Reps, RIR, rest and everything else are
595
- * untouched. Returns null when nothing would be lighter -- the override is an
596
- * explicitly lighter prescription, never an unchanged copy.
597
- */
598
612
  declare function applyDeload(setup: RoutineVersionSetup, options: DeloadOptions): RoutineVersionSetup | null;
599
613
  /** Days from `start` to `end`, both included. */
600
614
  declare function deloadLengthDays(startDate: CalendarDate, endDate: CalendarDate): number;
@@ -668,6 +682,8 @@ interface SetLog {
668
682
  weight?: number | null;
669
683
  rpe?: number | null;
670
684
  isCompleted: boolean;
685
+ /** LIVE-12: what this set was for in this workout. */
686
+ kind: SetKind;
671
687
  completedAt?: IsoDateString | null;
672
688
  createdAt: IsoDateString;
673
689
  updatedAt: IsoDateString;
@@ -741,6 +757,8 @@ interface WorkoutSession {
741
757
  maxReps?: number | null;
742
758
  weight?: number | null;
743
759
  rir?: number | null;
760
+ /** LIVE-12; absent on snapshots captured before it: a working set. */
761
+ kind?: SetKind;
744
762
  }>;
745
763
  }>;
746
764
  };
@@ -811,6 +829,12 @@ interface UpsertSetLogRequest {
811
829
  weight?: number;
812
830
  rpe?: number;
813
831
  isCompleted?: boolean;
832
+ /**
833
+ * LIVE-12: change what the set is for. Omitted, a new set takes its
834
+ * prescription's kind (an added set is working) and an existing one keeps
835
+ * its own.
836
+ */
837
+ kind?: SetKind;
814
838
  }
815
839
  /**
816
840
  * LIVE-11: an exercise performed in place of one routine slot for a single
@@ -1114,6 +1138,7 @@ interface ExercisePerformancePrescriptionSet {
1114
1138
  maxReps?: number | null;
1115
1139
  weightKg?: number | null;
1116
1140
  rir?: number | null;
1141
+ kind?: SetKind;
1117
1142
  }
1118
1143
  interface ExercisePerformancePrescription {
1119
1144
  routineExerciseId: string;
@@ -2783,6 +2808,80 @@ interface TrainingSignalsResponse {
2783
2808
  workouts: WorkoutSignal;
2784
2809
  }
2785
2810
 
2811
+ /**
2812
+ * PROG-11: a training block beside the block before it on the same routine,
2813
+ * or, for the first block, beside the same number of days before it began.
2814
+ * A block still running is compared up to today, and the period before it is
2815
+ * cut to the same number of days. Only that routine's workouts count, placed
2816
+ * by the owner-local date they ended. The numbers are stated side by side and
2817
+ * never ranked: nothing here says which period was better.
2818
+ */
2819
+ declare const TRAINING_BLOCK_COMPARISON_MAX_DAYS = 365;
2820
+ type BlockComparisonPeriodKind = "TRAINING_BLOCK" | "BEFORE_BLOCK";
2821
+ interface BlockComparisonPeriod {
2822
+ kind: BlockComparisonPeriodKind;
2823
+ /** The block's name; null for the days before the first block. */
2824
+ name: string | null;
2825
+ seriesId: string | null;
2826
+ /** Owner-local calendar dates, inclusive. */
2827
+ startDate: string;
2828
+ endDate: string;
2829
+ days: number;
2830
+ /**
2831
+ * Days the plan in force had a workout on, up to today; null for a
2832
+ * rotation without training weekdays, which has no dated plan.
2833
+ */
2834
+ plannedWorkouts: number | null;
2835
+ /** Workouts with at least one completed set. */
2836
+ workouts: number;
2837
+ endedEarly: number;
2838
+ deloads: number;
2839
+ completedSets: number;
2840
+ /** External load x reps; bodyweight sets add nothing. */
2841
+ volumeKg: number;
2842
+ perWeek: {
2843
+ workouts: number;
2844
+ completedSets: number;
2845
+ volumeKg: number;
2846
+ };
2847
+ /** Sets short of their snapshot rep target, deload workouts left out. */
2848
+ repTargets: RepTargetPeriod;
2849
+ }
2850
+ interface BlockComparisonLiftBest {
2851
+ estimated1rmKg: number;
2852
+ weightKg: number;
2853
+ reps: number;
2854
+ }
2855
+ interface BlockComparisonLift {
2856
+ exerciseId: string;
2857
+ exerciseName: string;
2858
+ current: BlockComparisonLiftBest;
2859
+ previous: BlockComparisonLiftBest;
2860
+ /** current minus previous, one decimal. */
2861
+ changeKg: number;
2862
+ /** Relative to previous, one decimal. */
2863
+ changePercent: number;
2864
+ }
2865
+ /** Stable successful response of GET /routines/:id/training-blocks/:seriesId/comparison. */
2866
+ interface TrainingBlockComparisonResponse {
2867
+ routineId: string;
2868
+ /** The owner-local date the comparison was made on. */
2869
+ today: string;
2870
+ /** The block has not ended, so both periods stop at the days elapsed. */
2871
+ isRunning: boolean;
2872
+ /** A period was longer than the maximum and was cut to its latest days. */
2873
+ truncated: boolean;
2874
+ current: BlockComparisonPeriod;
2875
+ previous: BlockComparisonPeriod;
2876
+ /**
2877
+ * The PROG-10 effort rule across the two periods: average RPE on the lifts
2878
+ * rated in both, `recent` being the block.
2879
+ */
2880
+ effort: EffortSignal;
2881
+ /** Lifts trained in both periods, alphabetically. */
2882
+ lifts: BlockComparisonLift[];
2883
+ }
2884
+
2786
2885
  /** SOC-08: one explicit grant from a member to their active training partner. */
2787
2886
  interface TrainingPartnerPermissions {
2788
2887
  schedule: boolean;
@@ -3372,4 +3471,4 @@ interface AccountExportV1 {
3372
3471
  /** The file name a download of the export is saved under. */
3373
3472
  declare function accountExportFileName(username: string, exportedAt: string): string;
3374
3473
 
3375
- export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, 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, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, 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, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, 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, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, 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 ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, 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 WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, deloadLengthDays, isWithinQuietHours, matchesDeletionConfirmation, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setLogValuesDiffer, trainingBlockCovers };
3474
+ export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, 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, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, 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, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, 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, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, 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 ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, 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 WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, countsAsWork, countsForProgression, deloadLengthDays, isSetKind, isWithinQuietHours, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers };
package/dist/index.d.ts CHANGED
@@ -24,6 +24,27 @@ interface PaginatedResponse<T> {
24
24
  nextCursor?: string;
25
25
  }
26
26
 
27
+ declare const SET_KINDS: readonly ["WORKING", "WARMUP", "DROP", "OPTIONAL"];
28
+ type SetKind = (typeof SET_KINDS)[number];
29
+ declare const SET_KIND_LABELS: Record<SetKind, string>;
30
+ declare function isSetKind(value: unknown): value is SetKind;
31
+ /** The kind of a set or set log, defaulting to a working set. */
32
+ declare function setKindOf(item?: {
33
+ kind?: SetKind | null;
34
+ } | null): SetKind;
35
+ /**
36
+ * Whether a completed set counts as work: volume, completed sets, muscles,
37
+ * records, achievements and every Progress read. A warm-up never does.
38
+ */
39
+ declare function countsAsWork(kind?: SetKind | null): boolean;
40
+ /**
41
+ * Whether a set takes part in progression and the rep-target signals. Only
42
+ * working and optional sets do; an optional set only once it was done.
43
+ */
44
+ declare function countsForProgression(kind?: SetKind | null): boolean;
45
+ /** Whether a set must be done before a workout finishes without a prompt. */
46
+ declare function requiredToFinish(kind?: SetKind | null): boolean;
47
+
27
48
  /** A local calendar date, YYYY-MM-DD. */
28
49
  type CalendarDate = string;
29
50
  /**
@@ -367,6 +388,8 @@ interface RoutineSet {
367
388
  maxReps?: number | null;
368
389
  weight?: number | null;
369
390
  rir?: number | null;
391
+ /** LIVE-12; absent means a working set. */
392
+ kind?: SetKind;
370
393
  }
371
394
  interface RoutineExercise {
372
395
  id: string;
@@ -586,15 +609,6 @@ interface DeloadOptions {
586
609
  }
587
610
  /** Why a deload cannot be made from a prescription with these options. */
588
611
  declare const DELOAD_NOT_LIGHTER = "Those options leave every set as it is: choose a lighter load or fewer sets";
589
- /**
590
- * ROUT-16's one rule for what a deload is, shared so the preview the owner
591
- * reviews and the prescription the server stores cannot disagree: every load
592
- * drops by the chosen percentage, rounded to the exercise's own increment
593
- * (a load whose grid cannot express the cut keeps its weight), and `HALF` keeps the first half of each
594
- * exercise's sets (rounded up, so one set stays one). Reps, RIR, rest and everything else are
595
- * untouched. Returns null when nothing would be lighter -- the override is an
596
- * explicitly lighter prescription, never an unchanged copy.
597
- */
598
612
  declare function applyDeload(setup: RoutineVersionSetup, options: DeloadOptions): RoutineVersionSetup | null;
599
613
  /** Days from `start` to `end`, both included. */
600
614
  declare function deloadLengthDays(startDate: CalendarDate, endDate: CalendarDate): number;
@@ -668,6 +682,8 @@ interface SetLog {
668
682
  weight?: number | null;
669
683
  rpe?: number | null;
670
684
  isCompleted: boolean;
685
+ /** LIVE-12: what this set was for in this workout. */
686
+ kind: SetKind;
671
687
  completedAt?: IsoDateString | null;
672
688
  createdAt: IsoDateString;
673
689
  updatedAt: IsoDateString;
@@ -741,6 +757,8 @@ interface WorkoutSession {
741
757
  maxReps?: number | null;
742
758
  weight?: number | null;
743
759
  rir?: number | null;
760
+ /** LIVE-12; absent on snapshots captured before it: a working set. */
761
+ kind?: SetKind;
744
762
  }>;
745
763
  }>;
746
764
  };
@@ -811,6 +829,12 @@ interface UpsertSetLogRequest {
811
829
  weight?: number;
812
830
  rpe?: number;
813
831
  isCompleted?: boolean;
832
+ /**
833
+ * LIVE-12: change what the set is for. Omitted, a new set takes its
834
+ * prescription's kind (an added set is working) and an existing one keeps
835
+ * its own.
836
+ */
837
+ kind?: SetKind;
814
838
  }
815
839
  /**
816
840
  * LIVE-11: an exercise performed in place of one routine slot for a single
@@ -1114,6 +1138,7 @@ interface ExercisePerformancePrescriptionSet {
1114
1138
  maxReps?: number | null;
1115
1139
  weightKg?: number | null;
1116
1140
  rir?: number | null;
1141
+ kind?: SetKind;
1117
1142
  }
1118
1143
  interface ExercisePerformancePrescription {
1119
1144
  routineExerciseId: string;
@@ -2783,6 +2808,80 @@ interface TrainingSignalsResponse {
2783
2808
  workouts: WorkoutSignal;
2784
2809
  }
2785
2810
 
2811
+ /**
2812
+ * PROG-11: a training block beside the block before it on the same routine,
2813
+ * or, for the first block, beside the same number of days before it began.
2814
+ * A block still running is compared up to today, and the period before it is
2815
+ * cut to the same number of days. Only that routine's workouts count, placed
2816
+ * by the owner-local date they ended. The numbers are stated side by side and
2817
+ * never ranked: nothing here says which period was better.
2818
+ */
2819
+ declare const TRAINING_BLOCK_COMPARISON_MAX_DAYS = 365;
2820
+ type BlockComparisonPeriodKind = "TRAINING_BLOCK" | "BEFORE_BLOCK";
2821
+ interface BlockComparisonPeriod {
2822
+ kind: BlockComparisonPeriodKind;
2823
+ /** The block's name; null for the days before the first block. */
2824
+ name: string | null;
2825
+ seriesId: string | null;
2826
+ /** Owner-local calendar dates, inclusive. */
2827
+ startDate: string;
2828
+ endDate: string;
2829
+ days: number;
2830
+ /**
2831
+ * Days the plan in force had a workout on, up to today; null for a
2832
+ * rotation without training weekdays, which has no dated plan.
2833
+ */
2834
+ plannedWorkouts: number | null;
2835
+ /** Workouts with at least one completed set. */
2836
+ workouts: number;
2837
+ endedEarly: number;
2838
+ deloads: number;
2839
+ completedSets: number;
2840
+ /** External load x reps; bodyweight sets add nothing. */
2841
+ volumeKg: number;
2842
+ perWeek: {
2843
+ workouts: number;
2844
+ completedSets: number;
2845
+ volumeKg: number;
2846
+ };
2847
+ /** Sets short of their snapshot rep target, deload workouts left out. */
2848
+ repTargets: RepTargetPeriod;
2849
+ }
2850
+ interface BlockComparisonLiftBest {
2851
+ estimated1rmKg: number;
2852
+ weightKg: number;
2853
+ reps: number;
2854
+ }
2855
+ interface BlockComparisonLift {
2856
+ exerciseId: string;
2857
+ exerciseName: string;
2858
+ current: BlockComparisonLiftBest;
2859
+ previous: BlockComparisonLiftBest;
2860
+ /** current minus previous, one decimal. */
2861
+ changeKg: number;
2862
+ /** Relative to previous, one decimal. */
2863
+ changePercent: number;
2864
+ }
2865
+ /** Stable successful response of GET /routines/:id/training-blocks/:seriesId/comparison. */
2866
+ interface TrainingBlockComparisonResponse {
2867
+ routineId: string;
2868
+ /** The owner-local date the comparison was made on. */
2869
+ today: string;
2870
+ /** The block has not ended, so both periods stop at the days elapsed. */
2871
+ isRunning: boolean;
2872
+ /** A period was longer than the maximum and was cut to its latest days. */
2873
+ truncated: boolean;
2874
+ current: BlockComparisonPeriod;
2875
+ previous: BlockComparisonPeriod;
2876
+ /**
2877
+ * The PROG-10 effort rule across the two periods: average RPE on the lifts
2878
+ * rated in both, `recent` being the block.
2879
+ */
2880
+ effort: EffortSignal;
2881
+ /** Lifts trained in both periods, alphabetically. */
2882
+ lifts: BlockComparisonLift[];
2883
+ }
2884
+
2786
2885
  /** SOC-08: one explicit grant from a member to their active training partner. */
2787
2886
  interface TrainingPartnerPermissions {
2788
2887
  schedule: boolean;
@@ -3372,4 +3471,4 @@ interface AccountExportV1 {
3372
3471
  /** The file name a download of the export is saved under. */
3373
3472
  declare function accountExportFileName(username: string, exportedAt: string): string;
3374
3473
 
3375
- export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, 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, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, 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, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, 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, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, 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 ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, 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 WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, deloadLengthDays, isWithinQuietHours, matchesDeletionConfirmation, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setLogValuesDiffer, trainingBlockCovers };
3474
+ export { ACCOUNT_EXPORT_FORMAT, ACCOUNT_EXPORT_VERSION, ACHIEVEMENT_CATEGORIES, ACHIEVEMENT_DEFINITIONS, ACTIVITY_CAPS, ACTIVITY_COMMENTS_PAGE_SIZE, ACTIVITY_COMMENTS_PER_DAY_MAX, ACTIVITY_COMMENT_MAX_LENGTH, ACTIVITY_DEFAULT_AUDIENCE, ACTIVITY_ENTRY_ID_MAX_LENGTH, ACTIVITY_FEED_FOLLOWED_MAX, ACTIVITY_PAGE_DEFAULT_LIMIT, ACTIVITY_PAGE_MAX_LIMIT, ACTIVITY_PREVIEW_AUDIENCES, ACTIVITY_REACTIONS, ACTIVITY_TYPES, ACTIVITY_TYPE_SECTIONS, type AccountExportGoal, type AccountExportMember, type AccountExportPersonalRecord, type AccountExportRoutine, type AccountExportScheduleOverride, type AccountExportTrainingEvent, type AccountExportTrainingLocation, type AccountExportV1, type AchievementActivity, type AchievementCategory, type AchievementCategoryProgress, type AchievementDefinition, type AchievementNotification, type AchievementUnlockedEventPayload, type AchievementsResponse, type ActivityAudience, type ActivityCap, type ActivityComment, type ActivityCommentNotification, type ActivityCommentSummary, type ActivityCommentsQuery, type ActivityCommentsResponse, type ActivityEntry, type ActivityEntrySharing, type ActivityFeedResponse, type ActivityLink, type ActivityPage, type ActivityPageQuery, type ActivityPreviewAudience, type ActivityPreviewQuery, type ActivityReaction, type ActivityReactionSummary, type ActivitySection, type ActivitySharingSettings, type ActivityType, type AppNotification, BLOCKED_MEMBERS_MAX, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, type CalendarDate, type CloneRoutineRefusal, type CloneRoutineRequest, type ComebackActivity, type ComebackRecognition, type ComebackRecognitionSummary, type CorrectSessionRequest, type CorrectSessionResponse, type CorrectSessionSetRequest, type CreateActivityCommentRequest, type CreateActivityCommentResponse, type CreateDeloadRequest, type CreateReportRequest, type CreateReportResponse, type CreateRoutineDayInput, type CreateRoutineExerciseInput, type CreateRoutineRequest, type CreateRoutineVersionRequest, type CreateSessionShareRequest, DELOAD_DEFAULT_DAYS, DELOAD_DEFAULT_LOAD_REDUCTION, DELOAD_DEFAULT_SET_MODE, DELOAD_LOAD_REDUCTIONS, DELOAD_MAX_DAYS, DELOAD_NOT_LIGHTER, DELOAD_SET_MODES, DELOAD_SUGGESTION_COOLDOWN_DAYS, DELOAD_SUGGESTION_EARLIER_DAYS, DELOAD_SUGGESTION_MIN_MARKED_TODAY, DELOAD_SUGGESTION_ROUTINE_DAYS, DELOAD_SUGGESTION_SIGNALS, type DeclineSignal, type DecliningLift, type DecliningLiftSession, type DeleteAccountRequest, type DeleteAccountResponse, type DeleteActivityCommentResponse, type DeletePushSubscriptionRequest, type DeloadLoadReduction, type DeloadOptions, type DeloadSetMode, type DeloadSuggestion, type DeloadSuggestionEvidence, type DeloadSuggestionResponse, type DeloadSuggestionSignal, type DeloadSuggestionUnavailableReason, type DiscoverableRoutine, EXERCISE_EQUIPMENT, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, 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, FEATURED_PROFILE_ITEMS_MAX, FEATURED_PROFILE_ITEM_KINDS, FEATURED_PROFILE_REFERENCE_MAX_LENGTH, FOLLOW_SUGGESTIONS_DEFAULT_LIMIT, FOLLOW_SUGGESTIONS_MAX_LIMIT, FOLLOW_SUGGESTION_REASONS, type FeaturedProfileAchievementItem, type FeaturedProfileItem, type FeaturedProfileItemKind, type FeaturedProfileRankItem, type FeaturedProfileRecordItem, type FeaturedProfileRoutineItem, type FeaturedProfileSelection, type FeaturedProfileSelectionInput, type FeaturedProfileSelectionsResponse, 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, MINUTES_IN_DAY, MODERATION_ACTION_KINDS, MODERATION_HISTORY_PAGE_SIZE, MODERATION_NOTE_MAX_LENGTH, MODERATION_QUEUE_PAGE_SIZE, MOVEMENT_PATTERNS, MUSCLE_GROUPS, type MarkNotificationsReadRequest, type MarkNotificationsReadResponse, type MeasurableGoal, type MeasurableGoalDirection, type MeasurableGoalExercise, type MeasurableGoalInput, type MeasurableGoalType, type MemberActivityResponse, type MemberModerationState, type MemberRoutinesResponse, type ModerationActionKind, type ModerationActionRecord, type ModerationHistoryQuery, type ModerationHistoryResponse, type ModerationQueueQuery, type ModerationQueueResponse, type ModerationReport, type ModeratorState, type MoveOccurrenceRequest, type MovementPattern, type MuscleGroup, type MuscleGroupHeatmapQuery, type MuscleGroupHeatmapResponse, type MuscleGroupHeatmapValue, type MuscleGroupHeatmapWeek, type MuscleVolumeTrendSeries, NOTIFICATIONS_LIST_LIMIT, NOTIFICATIONS_LOOKBACK_DAYS, NOTIFICATIONS_RETENTION_DAYS, NOTIFICATION_CATEGORIES, NOTIFICATION_KINDS, type NewFollowerNotification, type NotificationCategory, type NotificationKind, type NotificationPreferences, type NotificationPreferencesResponse, type NotificationsResponse, type OwnActivityEntry, type OwnActivityResponse, PLATEAU_MIN_DAYS_SINCE_BEST, PLATEAU_MIN_SESSIONS, PLATEAU_MIN_SESSIONS_MAX, PLATEAU_MIN_SESSIONS_MIN, 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, PUSH_PAYLOAD_KINDS, PUSH_SUBSCRIPTIONS_MAX, type PaginatedResponse, type PersonalGoalProgress, type PersonalGoalsResponse, type PersonalRecordActivity, type PersonalRecordEntry, type PersonalRecordKind, type PlannedReminder, type PlatePairInventory, type PlateauPreferences, 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 ProgressionActivity, type ProgressionChange, type ProgressionRule, type ProgressionScheme, type ProgressionSetChange, type PublicBodyMetrics, type PublicProfileAchievements, type PublicTrainingSummary, type PublicUserProfile, type PushPayload, type PushPayloadKind, type PushSubscriptionKeys, type PushSubscriptionSummary, type PushSubscriptionsResponse, type QuietHours, RELATIONSHIP_LIST_DEFAULT_LIMIT, RELATIONSHIP_LIST_KINDS, RELATIONSHIP_LIST_MAX_LIMIT, RENAISSANCE_RANK_DEFINITIONS, REPORTS_PER_DAY_MAX, REPORT_DETAILS_MAX_LENGTH, REPORT_REASONS, REPORT_STATUSES, REPORT_SUBJECT_KINDS, REP_TYPES, RESERVED_USERNAMES, REST_ALERT_MAX_LEAD_SECONDS, REST_ALERT_MIN_LEAD_SECONDS, REST_ALERT_REFUSALS, ROUTINE_DAYS_MAX, ROUTINE_DAY_NAME_MAX, ROUTINE_DISCOVERY_DEFAULT_LIMIT, ROUTINE_DISCOVERY_MAX_LIMIT, ROUTINE_DISCOVERY_SCAN_LIMIT, ROUTINE_DURATION_BANDS, ROUTINE_DURATION_BAND_MAX_MINUTES, ROUTINE_SCHEDULE_MODES, ROUTINE_SHARE_MAX_ACTIVE_LINKS, ROUTINE_TRAINING_BLOCKS_MAX, ROUTINE_TRAINING_BLOCK_NAME_MAX, ROUTINE_TRAINING_BLOCK_REVISIONS_MAX, ROUTINE_TRAINING_BLOCK_SOURCE_KINDS, ROUTINE_TRAINING_BLOCK_STATES, ROUTINE_VERSIONS_MAX, ROUTINE_VERSION_KINDS, ROUTINE_VERSION_NAME_MAX, ROUTINE_VISIBILITY_VALUES, type RecentActivityEntry, type RegisterPushSubscriptionRequest, type RelationshipListKind, type RelationshipListQuery, type RelationshipListResponse, type RelationshipMember, type RenaissanceRankDefinition, type RenaissanceRankProgress, type RepTargetPeriod, type RepTargetSignal, type RepType, type ReplaceFeaturedProfileItemsRequest, type ReplaceMeasurableGoalsRequest, type ReplaceTrainingLocationsRequest, type ReportReason, type ReportStatus, type ReportSubjectKind, type ReportSubjectPreview, type ResolvedRoutinePlan, type RestAlertPushPayload, type RestAlertRefusal, type RestoreRoutineVersionResponse, type ReviewReportRequest, type ReviewReportResponse, type Routine, type RoutineClassification, type RoutineDay, type RoutineDayId, type RoutineDiscoveryQuery, type RoutineDiscoveryResponse, type RoutineDurationBand, type RoutineExercise, type RoutineFacets, type RoutineId, type RoutineLineage, type RoutinePlanSource, type RoutineScheduleMode, type RoutineSet, type RoutineShare, type RoutineShareListResponse, type RoutineSharedActivity, type RoutineTemporaryOverride, type RoutineTemporaryOverridePlan, type RoutineTemporaryOverridesResponse, type RoutineTrainingBlock, type RoutineTrainingBlockPlan, type RoutineTrainingBlockRevision, type RoutineTrainingBlockRevisionsResponse, type RoutineTrainingBlockSource, type RoutineTrainingBlockSourceKind, type RoutineTrainingBlockState, type RoutineTrainingBlocksResponse, type RoutineVersion, type RoutineVersionDay, type RoutineVersionExercise, type RoutineVersionKind, type RoutineVersionSetup, type RoutineVersionsResponse, type RoutineVisibility, SCHEDULE_MOVE_MAX_DAYS, SCHEDULE_OVERRIDES_MAX_RANGE_DAYS, SCHEDULE_OVERRIDE_KINDS, SCHEDULE_SKIP_PAST_DAYS, SESSION_CORRECTIONS_MAX, SESSION_CORRECTION_LIMITS, SESSION_CORRECTION_WINDOW_HOURS, SESSION_EXERCISE_NOTE_MAX_LENGTH, SESSION_NOTE_MAX_LENGTH, SESSION_SHARE_DEFAULT_FIELDS, SESSION_SHARE_FIELDS, SESSION_SHARE_MAX_ACTIVE_LINKS, SET_KINDS, SET_KIND_LABELS, SEXES, SHARED_ROUTINE_SOURCES, STARRED_EXERCISES_MAX, STREAK_MAX_GAP_DAYS, type ScheduleOverride, type ScheduleOverrideKind, type ScheduleOverridesQuery, type ScheduleOverridesResponse, type ScheduleRestAlertRequest, type ScheduleRestAlertResponse, type SendTrainingPartnerEncouragementRequest, type SendTrainingPartnerEncouragementResponse, type SessionComparisonExercise, type SessionComparisonQuery, type SessionComparisonResponse, type SessionComparisonRoutineDay, type SessionComparisonSession, type SessionComparisonSet, type SessionCompletedActivity, type SessionCorrection, type SessionCorrectionClosedReason, type SessionCorrectionWindow, type SessionCorrectionsResponse, type SessionExerciseNote, type SessionExerciseSubstitution, type SessionProgressNotification, type SessionRecapExerciseNote, type SessionRecapRecord, type SessionSetCorrection, type SessionShare, type SessionShareField, type SessionShareListResponse, type SessionTemporaryOverride, type SessionTrainingBlock, type SetAccountTimeZoneRequest, type SetActivityEntryAudienceRequest, type SetActivityEntryAudienceResponse, type SetActivityReactionRequest, type SetActivityReactionResponse, type SetKind, type SetLog, type SetLogValues, type Sex, type SharedRoutine, type SharedRoutineOwner, type SharedRoutineSource, type SharedRoutineSummary, type SharedSessionOwner, type SharedSessionRecap, type SkipOccurrenceRequest, type StarredExercise, type StarredExercisesResponse, type StartWorkoutRequest, type StartWorkoutResponse, type StreakAtRiskPushPayload, type StreakMilestoneActivity, type StreakMilestoneEventPayload, type SubstituteSessionExerciseRequest, type SubstituteSessionExerciseResponse, type SupabaseAuthResponse, type SupabaseAuthUser, type SupabaseMigrationResponse, TEMPORARY_OVERRIDE_KINDS, TEMPORARY_OVERRIDE_SOURCE_KINDS, TRAINING_BLOCK_COMPARISON_MAX_DAYS, TRAINING_DISCIPLINE_VALUES, TRAINING_EVENT_TYPES, TRAINING_EXPERIENCE_LEVEL_VALUES, TRAINING_GOAL_VALUES, TRAINING_PARTNERSHIP_STATUSES, TRAINING_PARTNERS_MAX, TRAINING_PARTNER_ENCOURAGEMENTS_PER_24_HOURS_MAX, TRAINING_PARTNER_ENCOURAGEMENT_KINDS, TRAINING_PARTNER_PERMISSION_KEYS, TRAINING_PARTNER_REQUESTS_PER_DAY_MAX, TRAINING_SIGNAL_DECLINES_MAX, TRAINING_SIGNAL_DECLINE_SESSIONS, TRAINING_SIGNAL_MIN_DECLINE, TRAINING_SIGNAL_MIN_RPE_SETS, TRAINING_SIGNAL_MIN_SHORT_SETS, TRAINING_SIGNAL_MIN_TARGET_SETS, TRAINING_SIGNAL_PERIOD_DAYS, TRAINING_SIGNAL_RPE_RISE, TRAINING_SIGNAL_SHORT_LIFTS_MAX, TRAINING_SIGNAL_SHORT_POINTS_RISE, TRAINING_SIGNAL_WORKOUT_DROP, type TemporaryOverrideKind, type TemporaryOverrideSource, type TemporaryOverrideSourceKind, type TrainingBlockComparisonResponse, type TrainingDiscipline, type TrainingEventType, type TrainingExperienceLevel, type TrainingGoal, type TrainingIdentity, type TrainingLocationPreference, type TrainingLocationPreferenceInput, type TrainingPartnerAchievementNotification, type TrainingPartnerAchievementPushPayload, type TrainingPartnerEncouragementKind, type TrainingPartnerEncouragementNotification, type TrainingPartnerPermissions, type TrainingPartnerScheduleDay, type TrainingPartnerScheduleResponse, type TrainingPartnerSessionNotification, type TrainingPartnerSessionPushPayload, type TrainingPartnership, type TrainingPartnershipStatus, type TrainingPartnershipsResponse, type TrainingReminderPreference, type TrainingReminderPushPayload, type TrainingSignalPeriod, type TrainingSignalsResponse, USERNAME_MAX_LENGTH, USERNAME_MIN_LENGTH, USERNAME_PATTERN_SOURCE, type UpdateActivitySharingRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertRoutineTrainingBlockRequest, 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 WorkoutPeriod, type WorkoutProgressQuery, type WorkoutProgressResponse, type WorkoutSession, type WorkoutSessionId, type WorkoutSessionListResponse, type WorkoutSessionRecap, type WorkoutSessionSnapshotV1, type WorkoutSessionStatus, type WorkoutSessionSummary, type WorkoutSignal, type WorkoutStatsQuery, type WorkoutStatsResponse, accountExportFileName, applyDeload, countsAsWork, countsForProgression, deloadLengthDays, isSetKind, isWithinQuietHours, matchesDeletionConfirmation, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers };
package/dist/index.js CHANGED
@@ -322,6 +322,32 @@ var COMEBACK_WINDOW_DAYS = 14;
322
322
  var COMEBACK_SESSION_LOOKBACK = 500;
323
323
  var COMEBACK_RECOGNITION_LIMIT = 20;
324
324
 
325
+ // src/set-kinds.ts
326
+ var SET_KINDS = ["WORKING", "WARMUP", "DROP", "OPTIONAL"];
327
+ var SET_KIND_LABELS = {
328
+ WORKING: "Working",
329
+ WARMUP: "Warm-up",
330
+ DROP: "Drop",
331
+ OPTIONAL: "Optional"
332
+ };
333
+ function isSetKind(value) {
334
+ return SET_KINDS.includes(value);
335
+ }
336
+ function setKindOf(item) {
337
+ return item?.kind ?? "WORKING";
338
+ }
339
+ function countsAsWork(kind) {
340
+ return (kind ?? "WORKING") !== "WARMUP";
341
+ }
342
+ function countsForProgression(kind) {
343
+ const k = kind ?? "WORKING";
344
+ return k === "WORKING" || k === "OPTIONAL";
345
+ }
346
+ function requiredToFinish(kind) {
347
+ const k = kind ?? "WORKING";
348
+ return k === "WORKING" || k === "DROP";
349
+ }
350
+
325
351
  // src/routine.ts
326
352
  var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
327
353
  var ROUTINE_DAYS_MAX = 7;
@@ -443,13 +469,18 @@ var lighterOnGrid = (original, target, increment) => {
443
469
  const stepped = Math.round(Math.round(target / step) * step * 1e3) / 1e3;
444
470
  return stepped > 0 && stepped < original ? stepped : original;
445
471
  };
472
+ function halveSets(sets) {
473
+ const work = sets.filter((set) => countsAsWork(set.kind));
474
+ const keep = new Set(work.slice(0, Math.ceil(work.length / 2)));
475
+ return sets.filter((set) => !countsAsWork(set.kind) || keep.has(set)).map((set, index) => ({ ...set, setNumber: index + 1 }));
476
+ }
446
477
  function applyDeload(setup, options) {
447
478
  const factor = 1 - options.loadReductionPercent / 100;
448
479
  let lighter = false;
449
480
  const days = setup.days.map((day) => ({
450
481
  ...day,
451
482
  exercises: day.exercises.map((exercise) => {
452
- const kept = options.setMode === "HALF" ? exercise.sets.slice(0, Math.ceil(exercise.sets.length / 2)) : exercise.sets;
483
+ const kept = options.setMode === "HALF" ? halveSets(exercise.sets) : exercise.sets;
453
484
  if (kept.length < exercise.sets.length) lighter = true;
454
485
  return {
455
486
  ...exercise,
@@ -629,6 +660,9 @@ var TRAINING_SIGNAL_MIN_DECLINE = 0.025;
629
660
  var TRAINING_SIGNAL_DECLINES_MAX = 5;
630
661
  var TRAINING_SIGNAL_WORKOUT_DROP = 2;
631
662
 
663
+ // src/training-block-comparison.ts
664
+ var TRAINING_BLOCK_COMPARISON_MAX_DAYS = 365;
665
+
632
666
  // src/notifications.ts
633
667
  var NOTIFICATION_KINDS = [
634
668
  "ACHIEVEMENT",
@@ -841,12 +875,15 @@ export {
841
875
  SESSION_SHARE_DEFAULT_FIELDS,
842
876
  SESSION_SHARE_FIELDS,
843
877
  SESSION_SHARE_MAX_ACTIVE_LINKS,
878
+ SET_KINDS,
879
+ SET_KIND_LABELS,
844
880
  SEXES,
845
881
  SHARED_ROUTINE_SOURCES,
846
882
  STARRED_EXERCISES_MAX,
847
883
  STREAK_MAX_GAP_DAYS,
848
884
  TEMPORARY_OVERRIDE_KINDS,
849
885
  TEMPORARY_OVERRIDE_SOURCE_KINDS,
886
+ TRAINING_BLOCK_COMPARISON_MAX_DAYS,
850
887
  TRAINING_DISCIPLINE_VALUES,
851
888
  TRAINING_EVENT_TYPES,
852
889
  TRAINING_EXPERIENCE_LEVEL_VALUES,
@@ -875,13 +912,18 @@ export {
875
912
  WORKOUT_SESSION_STATUSES,
876
913
  accountExportFileName,
877
914
  applyDeload,
915
+ countsAsWork,
916
+ countsForProgression,
878
917
  deloadLengthDays,
918
+ isSetKind,
879
919
  isWithinQuietHours,
880
920
  matchesDeletionConfirmation,
921
+ requiredToFinish,
881
922
  resolveActiveTrainingBlock,
882
923
  resolveRoutinePlan,
883
924
  routineDayLabel,
884
925
  sessionCorrectionWindow,
926
+ setKindOf,
885
927
  setLogValuesDiffer,
886
928
  trainingBlockCovers
887
929
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunsteel/contracts",
3
- "version": "0.68.0",
3
+ "version": "0.70.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ezee969/sunsteel-contracts.git"