@sunsteel/contracts 0.72.0 → 0.74.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 +171 -0
- package/dist/index.d.cts +172 -2
- package/dist/index.d.ts +172 -2
- package/dist/index.js +155 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -40,6 +40,9 @@ __export(index_exports, {
|
|
|
40
40
|
BAR_CHOICES_KG: () => BAR_CHOICES_KG,
|
|
41
41
|
BAR_WARM_UP_STEPS: () => BAR_WARM_UP_STEPS,
|
|
42
42
|
BLOCKED_MEMBERS_MAX: () => BLOCKED_MEMBERS_MAX,
|
|
43
|
+
BODY_MEASUREMENT_FIELDS: () => BODY_MEASUREMENT_FIELDS,
|
|
44
|
+
BODY_MEASUREMENT_FIELD_KEYS: () => BODY_MEASUREMENT_FIELD_KEYS,
|
|
45
|
+
BODY_PROGRESS_RANGES: () => BODY_PROGRESS_RANGES,
|
|
43
46
|
CLONE_ROUTINE_REFUSALS: () => CLONE_ROUTINE_REFUSALS,
|
|
44
47
|
COMEBACK_MIN_INACTIVE_DAYS: () => COMEBACK_MIN_INACTIVE_DAYS,
|
|
45
48
|
COMEBACK_RECOGNITION_LIMIT: () => COMEBACK_RECOGNITION_LIMIT,
|
|
@@ -64,6 +67,8 @@ __export(index_exports, {
|
|
|
64
67
|
DELOAD_SUGGESTION_ROUTINE_DAYS: () => DELOAD_SUGGESTION_ROUTINE_DAYS,
|
|
65
68
|
DELOAD_SUGGESTION_SIGNALS: () => DELOAD_SUGGESTION_SIGNALS,
|
|
66
69
|
EXERCISE_EQUIPMENT: () => EXERCISE_EQUIPMENT,
|
|
70
|
+
EXERCISE_GROUP_KIND_LABELS: () => EXERCISE_GROUP_KIND_LABELS,
|
|
71
|
+
EXERCISE_GROUP_MAX: () => EXERCISE_GROUP_MAX,
|
|
67
72
|
EXERCISE_MECHANICS: () => EXERCISE_MECHANICS,
|
|
68
73
|
FEATURED_PROFILE_ITEMS_MAX: () => FEATURED_PROFILE_ITEMS_MAX,
|
|
69
74
|
FEATURED_PROFILE_ITEM_KINDS: () => FEATURED_PROFILE_ITEM_KINDS,
|
|
@@ -188,20 +193,30 @@ __export(index_exports, {
|
|
|
188
193
|
WORKOUT_SESSION_STATUSES: () => WORKOUT_SESSION_STATUSES,
|
|
189
194
|
accountExportFileName: () => accountExportFileName,
|
|
190
195
|
applyDeload: () => applyDeload,
|
|
196
|
+
bodyMeasurementProblems: () => bodyMeasurementProblems,
|
|
197
|
+
bodyProgressRangeStart: () => bodyProgressRangeStart,
|
|
191
198
|
buildWarmUpRamp: () => buildWarmUpRamp,
|
|
192
199
|
calculatePlateLoading: () => calculatePlateLoading,
|
|
200
|
+
canLinkToNext: () => canLinkToNext,
|
|
193
201
|
countsAsWork: () => countsAsWork,
|
|
194
202
|
countsForProgression: () => countsForProgression,
|
|
195
203
|
customExerciseProblem: () => customExerciseProblem,
|
|
196
204
|
defaultWarmUpEquipment: () => defaultWarmUpEquipment,
|
|
197
205
|
deloadLengthDays: () => deloadLengthDays,
|
|
206
|
+
exerciseGroupLabel: () => exerciseGroupLabel,
|
|
207
|
+
exerciseGroupPosition: () => exerciseGroupPosition,
|
|
208
|
+
exerciseGroups: () => exerciseGroups,
|
|
198
209
|
exerciseNameKey: () => exerciseNameKey,
|
|
199
210
|
followWorkingLoad: () => followWorkingLoad,
|
|
211
|
+
hasOversizedGroup: () => hasOversizedGroup,
|
|
200
212
|
isBarLoaded: () => isBarLoaded,
|
|
213
|
+
isBodyMeasurementDate: () => isBodyMeasurementDate,
|
|
201
214
|
isSetKind: () => isSetKind,
|
|
202
215
|
isWithinQuietHours: () => isWithinQuietHours,
|
|
216
|
+
latestBodyWeight: () => latestBodyWeight,
|
|
203
217
|
leadWorkingWeight: () => leadWorkingWeight,
|
|
204
218
|
matchesDeletionConfirmation: () => matchesDeletionConfirmation,
|
|
219
|
+
normalizeExerciseLinks: () => normalizeExerciseLinks,
|
|
205
220
|
normalizeExerciseName: () => normalizeExerciseName,
|
|
206
221
|
primaryEquipment: () => primaryEquipment,
|
|
207
222
|
requiredToFinish: () => requiredToFinish,
|
|
@@ -211,6 +226,7 @@ __export(index_exports, {
|
|
|
211
226
|
sessionCorrectionWindow: () => sessionCorrectionWindow,
|
|
212
227
|
setKindOf: () => setKindOf,
|
|
213
228
|
setLogValuesDiffer: () => setLogValuesDiffer,
|
|
229
|
+
summarizeBodyProgress: () => summarizeBodyProgress,
|
|
214
230
|
trainingBlockCovers: () => trainingBlockCovers,
|
|
215
231
|
warmUpLoad: () => warmUpLoad
|
|
216
232
|
});
|
|
@@ -482,6 +498,92 @@ var MEASURABLE_GOAL_TYPES = [
|
|
|
482
498
|
var MEASURABLE_GOAL_DIRECTIONS = ["AT_LEAST", "AT_MOST"];
|
|
483
499
|
var MEASURABLE_GOALS_MAX = 8;
|
|
484
500
|
|
|
501
|
+
// src/body-measurements.ts
|
|
502
|
+
var BODY_MEASUREMENT_FIELDS = [
|
|
503
|
+
{ key: "weightKg", label: "Weight", unit: "kg", min: 20, max: 1e3 },
|
|
504
|
+
{ key: "waistCm", label: "Waist", unit: "cm", min: 10, max: 300 },
|
|
505
|
+
{ key: "hipsCm", label: "Hips", unit: "cm", min: 10, max: 300 },
|
|
506
|
+
{ key: "chestCm", label: "Chest", unit: "cm", min: 10, max: 300 },
|
|
507
|
+
{ key: "armCm", label: "Arm", unit: "cm", min: 10, max: 300 },
|
|
508
|
+
{ key: "thighCm", label: "Thigh", unit: "cm", min: 10, max: 300 },
|
|
509
|
+
{ key: "bodyFatPercent", label: "Body fat", unit: "%", min: 2, max: 75 }
|
|
510
|
+
];
|
|
511
|
+
var BODY_MEASUREMENT_FIELD_KEYS = BODY_MEASUREMENT_FIELDS.map((field) => field.key);
|
|
512
|
+
var BODY_PROGRESS_RANGES = ["30D", "90D", "1Y", "ALL"];
|
|
513
|
+
var DATE_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
514
|
+
function isBodyMeasurementDate(value) {
|
|
515
|
+
const match = DATE_PATTERN.exec(value);
|
|
516
|
+
if (!match) return false;
|
|
517
|
+
const date = /* @__PURE__ */ new Date(`${value}T00:00:00Z`);
|
|
518
|
+
return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === value;
|
|
519
|
+
}
|
|
520
|
+
function shiftDate(date, days) {
|
|
521
|
+
const shifted = /* @__PURE__ */ new Date(`${date}T00:00:00Z`);
|
|
522
|
+
shifted.setUTCDate(shifted.getUTCDate() + days);
|
|
523
|
+
return shifted.toISOString().slice(0, 10);
|
|
524
|
+
}
|
|
525
|
+
function bodyProgressRangeStart(range, today) {
|
|
526
|
+
switch (range) {
|
|
527
|
+
case "30D":
|
|
528
|
+
return shiftDate(today, -29);
|
|
529
|
+
case "90D":
|
|
530
|
+
return shiftDate(today, -89);
|
|
531
|
+
case "1Y":
|
|
532
|
+
return shiftDate(today, -364);
|
|
533
|
+
case "ALL":
|
|
534
|
+
return null;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
function bodyMeasurementProblems(input) {
|
|
538
|
+
const problems = [];
|
|
539
|
+
let values = 0;
|
|
540
|
+
for (const field of BODY_MEASUREMENT_FIELDS) {
|
|
541
|
+
const value = input[field.key];
|
|
542
|
+
if (value === void 0 || value === null) continue;
|
|
543
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
544
|
+
problems.push({ field: field.key, message: `${field.label} must be a number` });
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
547
|
+
values += 1;
|
|
548
|
+
if (value < field.min || value > field.max) {
|
|
549
|
+
problems.push({
|
|
550
|
+
field: field.key,
|
|
551
|
+
message: `${field.label} must be between ${field.min} and ${field.max} ${field.unit}`
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
if (values === 0 && problems.length === 0) {
|
|
556
|
+
problems.push({ field: null, message: "Add at least one measurement" });
|
|
557
|
+
}
|
|
558
|
+
return problems;
|
|
559
|
+
}
|
|
560
|
+
function summarizeBodyProgress(entries, rangeStart) {
|
|
561
|
+
const ordered = [...entries].sort((a, b) => a.date.localeCompare(b.date));
|
|
562
|
+
return BODY_MEASUREMENT_FIELD_KEYS.map((field) => {
|
|
563
|
+
const recorded = ordered.filter((entry) => entry[field] !== null);
|
|
564
|
+
const latestEntry = recorded[recorded.length - 1] ?? null;
|
|
565
|
+
const firstInRange = recorded.find((entry) => rangeStart === null || entry.date >= rangeStart) ?? null;
|
|
566
|
+
const hasChange = latestEntry !== null && firstInRange !== null && firstInRange.date !== latestEntry.date;
|
|
567
|
+
return {
|
|
568
|
+
field,
|
|
569
|
+
latest: latestEntry?.[field] ?? null,
|
|
570
|
+
latestDate: latestEntry?.date ?? null,
|
|
571
|
+
change: hasChange ? Math.round((latestEntry[field] - firstInRange[field]) * 100) / 100 : null,
|
|
572
|
+
changeSince: hasChange ? firstInRange.date : null
|
|
573
|
+
};
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
function latestBodyWeight(entries) {
|
|
577
|
+
let latest = null;
|
|
578
|
+
for (const entry of entries) {
|
|
579
|
+
if (entry.weightKg === null) continue;
|
|
580
|
+
if (latest === null || entry.date > latest.date) {
|
|
581
|
+
latest = { date: entry.date, weightKg: entry.weightKg };
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
return latest?.weightKg ?? null;
|
|
585
|
+
}
|
|
586
|
+
|
|
485
587
|
// src/achievements.ts
|
|
486
588
|
var ACHIEVEMENT_CATEGORIES = [
|
|
487
589
|
"SESSIONS",
|
|
@@ -864,6 +966,59 @@ function followWorkingLoad(sets, equipment) {
|
|
|
864
966
|
);
|
|
865
967
|
}
|
|
866
968
|
|
|
969
|
+
// src/exercise-groups.ts
|
|
970
|
+
var EXERCISE_GROUP_MAX = 6;
|
|
971
|
+
var EXERCISE_GROUP_KIND_LABELS = {
|
|
972
|
+
SUPERSET: "Superset",
|
|
973
|
+
CIRCUIT: "Circuit"
|
|
974
|
+
};
|
|
975
|
+
var letterFor = (index) => index < 26 ? String.fromCharCode(65 + index) : letterFor(Math.floor(index / 26) - 1) + letterFor(index % 26);
|
|
976
|
+
function exerciseGroups(exercises) {
|
|
977
|
+
const groups = [];
|
|
978
|
+
let index = 0;
|
|
979
|
+
while (index < exercises.length) {
|
|
980
|
+
const indices = [index];
|
|
981
|
+
while (exercises[indices[indices.length - 1]].linkedToNext && indices[indices.length - 1] + 1 < exercises.length) {
|
|
982
|
+
indices.push(indices[indices.length - 1] + 1);
|
|
983
|
+
}
|
|
984
|
+
if (indices.length > 1) {
|
|
985
|
+
groups.push({
|
|
986
|
+
letter: letterFor(groups.length),
|
|
987
|
+
kind: indices.length === 2 ? "SUPERSET" : "CIRCUIT",
|
|
988
|
+
indices
|
|
989
|
+
});
|
|
990
|
+
}
|
|
991
|
+
index = indices[indices.length - 1] + 1;
|
|
992
|
+
}
|
|
993
|
+
return groups;
|
|
994
|
+
}
|
|
995
|
+
function exerciseGroupPosition(exercises, index) {
|
|
996
|
+
for (const group of exerciseGroups(exercises)) {
|
|
997
|
+
const at = group.indices.indexOf(index);
|
|
998
|
+
if (at >= 0) return { group, position: at + 1 };
|
|
999
|
+
}
|
|
1000
|
+
return null;
|
|
1001
|
+
}
|
|
1002
|
+
var exerciseGroupLabel = ({ group, position }) => `${EXERCISE_GROUP_KIND_LABELS[group.kind]} ${group.letter}${position}`;
|
|
1003
|
+
function canLinkToNext(exercises, index) {
|
|
1004
|
+
if (index < 0 || index >= exercises.length - 1) return false;
|
|
1005
|
+
let start = index;
|
|
1006
|
+
while (start > 0 && exercises[start - 1].linkedToNext) start -= 1;
|
|
1007
|
+
let end = index + 1;
|
|
1008
|
+
while (end < exercises.length - 1 && exercises[end].linkedToNext) end += 1;
|
|
1009
|
+
return end - start + 1 <= EXERCISE_GROUP_MAX;
|
|
1010
|
+
}
|
|
1011
|
+
function normalizeExerciseLinks(exercises) {
|
|
1012
|
+
return exercises.map(
|
|
1013
|
+
(exercise, index) => exercise.linkedToNext && index === exercises.length - 1 ? { ...exercise, linkedToNext: false } : exercise
|
|
1014
|
+
);
|
|
1015
|
+
}
|
|
1016
|
+
function hasOversizedGroup(exercises) {
|
|
1017
|
+
return exerciseGroups(exercises).some(
|
|
1018
|
+
(group) => group.indices.length > EXERCISE_GROUP_MAX
|
|
1019
|
+
);
|
|
1020
|
+
}
|
|
1021
|
+
|
|
867
1022
|
// src/routine.ts
|
|
868
1023
|
var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
|
|
869
1024
|
var ROUTINE_DAYS_MAX = 7;
|
|
@@ -1292,6 +1447,9 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1292
1447
|
BAR_CHOICES_KG,
|
|
1293
1448
|
BAR_WARM_UP_STEPS,
|
|
1294
1449
|
BLOCKED_MEMBERS_MAX,
|
|
1450
|
+
BODY_MEASUREMENT_FIELDS,
|
|
1451
|
+
BODY_MEASUREMENT_FIELD_KEYS,
|
|
1452
|
+
BODY_PROGRESS_RANGES,
|
|
1295
1453
|
CLONE_ROUTINE_REFUSALS,
|
|
1296
1454
|
COMEBACK_MIN_INACTIVE_DAYS,
|
|
1297
1455
|
COMEBACK_RECOGNITION_LIMIT,
|
|
@@ -1316,6 +1474,8 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1316
1474
|
DELOAD_SUGGESTION_ROUTINE_DAYS,
|
|
1317
1475
|
DELOAD_SUGGESTION_SIGNALS,
|
|
1318
1476
|
EXERCISE_EQUIPMENT,
|
|
1477
|
+
EXERCISE_GROUP_KIND_LABELS,
|
|
1478
|
+
EXERCISE_GROUP_MAX,
|
|
1319
1479
|
EXERCISE_MECHANICS,
|
|
1320
1480
|
FEATURED_PROFILE_ITEMS_MAX,
|
|
1321
1481
|
FEATURED_PROFILE_ITEM_KINDS,
|
|
@@ -1440,20 +1600,30 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1440
1600
|
WORKOUT_SESSION_STATUSES,
|
|
1441
1601
|
accountExportFileName,
|
|
1442
1602
|
applyDeload,
|
|
1603
|
+
bodyMeasurementProblems,
|
|
1604
|
+
bodyProgressRangeStart,
|
|
1443
1605
|
buildWarmUpRamp,
|
|
1444
1606
|
calculatePlateLoading,
|
|
1607
|
+
canLinkToNext,
|
|
1445
1608
|
countsAsWork,
|
|
1446
1609
|
countsForProgression,
|
|
1447
1610
|
customExerciseProblem,
|
|
1448
1611
|
defaultWarmUpEquipment,
|
|
1449
1612
|
deloadLengthDays,
|
|
1613
|
+
exerciseGroupLabel,
|
|
1614
|
+
exerciseGroupPosition,
|
|
1615
|
+
exerciseGroups,
|
|
1450
1616
|
exerciseNameKey,
|
|
1451
1617
|
followWorkingLoad,
|
|
1618
|
+
hasOversizedGroup,
|
|
1452
1619
|
isBarLoaded,
|
|
1620
|
+
isBodyMeasurementDate,
|
|
1453
1621
|
isSetKind,
|
|
1454
1622
|
isWithinQuietHours,
|
|
1623
|
+
latestBodyWeight,
|
|
1455
1624
|
leadWorkingWeight,
|
|
1456
1625
|
matchesDeletionConfirmation,
|
|
1626
|
+
normalizeExerciseLinks,
|
|
1457
1627
|
normalizeExerciseName,
|
|
1458
1628
|
primaryEquipment,
|
|
1459
1629
|
requiredToFinish,
|
|
@@ -1463,6 +1633,7 @@ function accountExportFileName(username, exportedAt) {
|
|
|
1463
1633
|
sessionCorrectionWindow,
|
|
1464
1634
|
setKindOf,
|
|
1465
1635
|
setLogValuesDiffer,
|
|
1636
|
+
summarizeBodyProgress,
|
|
1466
1637
|
trainingBlockCovers,
|
|
1467
1638
|
warmUpLoad
|
|
1468
1639
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -406,6 +406,11 @@ interface RoutineExercise {
|
|
|
406
406
|
minWeightIncrement: number;
|
|
407
407
|
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
408
408
|
warmUpsFollowLoad?: boolean;
|
|
409
|
+
/**
|
|
410
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
411
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
412
|
+
*/
|
|
413
|
+
linkedToNext?: boolean;
|
|
409
414
|
exercise: {
|
|
410
415
|
id: string;
|
|
411
416
|
name: string;
|
|
@@ -423,6 +428,11 @@ interface CreateRoutineExerciseInput {
|
|
|
423
428
|
minWeightIncrement: number;
|
|
424
429
|
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
425
430
|
warmUpsFollowLoad?: boolean;
|
|
431
|
+
/**
|
|
432
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
433
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
434
|
+
*/
|
|
435
|
+
linkedToNext?: boolean;
|
|
426
436
|
sets: RoutineSet[];
|
|
427
437
|
}
|
|
428
438
|
interface RoutineDay {
|
|
@@ -553,6 +563,11 @@ interface RoutineVersionExercise {
|
|
|
553
563
|
minWeightIncrement: number;
|
|
554
564
|
/** LIVE-20; absent in setups captured before it. */
|
|
555
565
|
warmUpsFollowLoad?: boolean;
|
|
566
|
+
/**
|
|
567
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
568
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
569
|
+
*/
|
|
570
|
+
linkedToNext?: boolean;
|
|
556
571
|
sets: RoutineSet[];
|
|
557
572
|
}
|
|
558
573
|
interface RoutineVersionDay {
|
|
@@ -754,6 +769,8 @@ interface WorkoutSession {
|
|
|
754
769
|
note?: string | null;
|
|
755
770
|
progressionScheme: ProgressionScheme;
|
|
756
771
|
minWeightIncrement: number;
|
|
772
|
+
/** ROUT-12: done in rounds with the next exercise of the day. */
|
|
773
|
+
linkedToNext?: boolean;
|
|
757
774
|
exercise: {
|
|
758
775
|
id: string;
|
|
759
776
|
name: string;
|
|
@@ -1756,6 +1773,8 @@ interface ProfilePrivacySettings {
|
|
|
1756
1773
|
routines: ProfileVisibility;
|
|
1757
1774
|
achievements: ProfileVisibility;
|
|
1758
1775
|
bodyMetrics: ProfileVisibility;
|
|
1776
|
+
/** PROG-12: the dated weight and measurement history, separate from bodyMetrics. */
|
|
1777
|
+
bodyProgress: ProfileVisibility;
|
|
1759
1778
|
}
|
|
1760
1779
|
interface ProfileDiscoverySettings {
|
|
1761
1780
|
discoverableByName: boolean;
|
|
@@ -1771,6 +1790,7 @@ interface ProfileViewerAccess {
|
|
|
1771
1790
|
routines: boolean;
|
|
1772
1791
|
achievements: boolean;
|
|
1773
1792
|
bodyMetrics: boolean;
|
|
1793
|
+
bodyProgress: boolean;
|
|
1774
1794
|
}
|
|
1775
1795
|
interface PublicTrainingSummary {
|
|
1776
1796
|
completedWorkouts: number;
|
|
@@ -1912,8 +1932,13 @@ interface UpdateProfileRequest {
|
|
|
1912
1932
|
weight?: number | null;
|
|
1913
1933
|
height?: number | null;
|
|
1914
1934
|
weightUnit?: WeightUnit;
|
|
1935
|
+
/**
|
|
1936
|
+
* PROG-12: the member's local date (YYYY-MM-DD). A changed weight is also
|
|
1937
|
+
* recorded as that date's body measurement; without it the server uses UTC.
|
|
1938
|
+
*/
|
|
1939
|
+
localDate?: string;
|
|
1915
1940
|
}
|
|
1916
|
-
type UpdateProfilePrivacyRequest = Omit<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity'> & Partial<Pick<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity'>>;
|
|
1941
|
+
type UpdateProfilePrivacyRequest = Omit<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity' | 'bodyProgress'> & Partial<Pick<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity' | 'bodyProgress'>>;
|
|
1917
1942
|
type UpdateProfileDiscoveryRequest = ProfileDiscoverySettings;
|
|
1918
1943
|
interface PlatePairInventory {
|
|
1919
1944
|
weightKg: number;
|
|
@@ -2171,6 +2196,108 @@ interface PersonalGoalsResponse {
|
|
|
2171
2196
|
goals: PersonalGoalProgress[];
|
|
2172
2197
|
}
|
|
2173
2198
|
|
|
2199
|
+
/**
|
|
2200
|
+
* PROG-12: dated body weight and measurements. One entry per member per local
|
|
2201
|
+
* date; every value is optional but an entry holds at least one. Weight is
|
|
2202
|
+
* kilograms whatever unit the account displays, lengths are centimetres.
|
|
2203
|
+
*/
|
|
2204
|
+
declare const BODY_MEASUREMENT_FIELDS: readonly [{
|
|
2205
|
+
readonly key: "weightKg";
|
|
2206
|
+
readonly label: "Weight";
|
|
2207
|
+
readonly unit: "kg";
|
|
2208
|
+
readonly min: 20;
|
|
2209
|
+
readonly max: 1000;
|
|
2210
|
+
}, {
|
|
2211
|
+
readonly key: "waistCm";
|
|
2212
|
+
readonly label: "Waist";
|
|
2213
|
+
readonly unit: "cm";
|
|
2214
|
+
readonly min: 10;
|
|
2215
|
+
readonly max: 300;
|
|
2216
|
+
}, {
|
|
2217
|
+
readonly key: "hipsCm";
|
|
2218
|
+
readonly label: "Hips";
|
|
2219
|
+
readonly unit: "cm";
|
|
2220
|
+
readonly min: 10;
|
|
2221
|
+
readonly max: 300;
|
|
2222
|
+
}, {
|
|
2223
|
+
readonly key: "chestCm";
|
|
2224
|
+
readonly label: "Chest";
|
|
2225
|
+
readonly unit: "cm";
|
|
2226
|
+
readonly min: 10;
|
|
2227
|
+
readonly max: 300;
|
|
2228
|
+
}, {
|
|
2229
|
+
readonly key: "armCm";
|
|
2230
|
+
readonly label: "Arm";
|
|
2231
|
+
readonly unit: "cm";
|
|
2232
|
+
readonly min: 10;
|
|
2233
|
+
readonly max: 300;
|
|
2234
|
+
}, {
|
|
2235
|
+
readonly key: "thighCm";
|
|
2236
|
+
readonly label: "Thigh";
|
|
2237
|
+
readonly unit: "cm";
|
|
2238
|
+
readonly min: 10;
|
|
2239
|
+
readonly max: 300;
|
|
2240
|
+
}, {
|
|
2241
|
+
readonly key: "bodyFatPercent";
|
|
2242
|
+
readonly label: "Body fat";
|
|
2243
|
+
readonly unit: "%";
|
|
2244
|
+
readonly min: 2;
|
|
2245
|
+
readonly max: 75;
|
|
2246
|
+
}];
|
|
2247
|
+
type BodyMeasurementField = (typeof BODY_MEASUREMENT_FIELDS)[number]["key"];
|
|
2248
|
+
declare const BODY_MEASUREMENT_FIELD_KEYS: readonly BodyMeasurementField[];
|
|
2249
|
+
type BodyMeasurementValues = {
|
|
2250
|
+
[K in BodyMeasurementField]: number | null;
|
|
2251
|
+
};
|
|
2252
|
+
interface BodyMeasurement extends BodyMeasurementValues {
|
|
2253
|
+
/** The member's local date, YYYY-MM-DD. */
|
|
2254
|
+
date: string;
|
|
2255
|
+
updatedAt: IsoDateString;
|
|
2256
|
+
}
|
|
2257
|
+
/** PUT /body-measurements/:date. A missing or null value clears that field. */
|
|
2258
|
+
type UpsertBodyMeasurementRequest = Partial<BodyMeasurementValues>;
|
|
2259
|
+
declare const BODY_PROGRESS_RANGES: readonly ["30D", "90D", "1Y", "ALL"];
|
|
2260
|
+
type BodyProgressRange = (typeof BODY_PROGRESS_RANGES)[number];
|
|
2261
|
+
interface BodyFieldSummary {
|
|
2262
|
+
field: BodyMeasurementField;
|
|
2263
|
+
/** The most recent value ever recorded, and its date. */
|
|
2264
|
+
latest: number | null;
|
|
2265
|
+
latestDate: string | null;
|
|
2266
|
+
/**
|
|
2267
|
+
* Latest minus the first value recorded inside the range, when both exist
|
|
2268
|
+
* on different dates inside it; otherwise null.
|
|
2269
|
+
*/
|
|
2270
|
+
change: number | null;
|
|
2271
|
+
changeSince: string | null;
|
|
2272
|
+
}
|
|
2273
|
+
/**
|
|
2274
|
+
* GET /body-measurements (the owner) and
|
|
2275
|
+
* GET /users/:identifier/body-measurements (another member, when their
|
|
2276
|
+
* `bodyProgress` visibility allows it). Entries are the range's, oldest first.
|
|
2277
|
+
*/
|
|
2278
|
+
interface BodyProgressResponse {
|
|
2279
|
+
range: BodyProgressRange;
|
|
2280
|
+
rangeStart: string | null;
|
|
2281
|
+
entries: BodyMeasurement[];
|
|
2282
|
+
summary: BodyFieldSummary[];
|
|
2283
|
+
}
|
|
2284
|
+
declare function isBodyMeasurementDate(value: string): boolean;
|
|
2285
|
+
/** The first date a range covers, counting today; null for ALL. */
|
|
2286
|
+
declare function bodyProgressRangeStart(range: BodyProgressRange, today: string): string | null;
|
|
2287
|
+
/** The field a value is out of bounds for, with the reason in words. */
|
|
2288
|
+
interface BodyMeasurementProblem {
|
|
2289
|
+
field: BodyMeasurementField | null;
|
|
2290
|
+
message: string;
|
|
2291
|
+
}
|
|
2292
|
+
declare function bodyMeasurementProblems(input: UpsertBodyMeasurementRequest): BodyMeasurementProblem[];
|
|
2293
|
+
/**
|
|
2294
|
+
* Per field: the latest value ever recorded and its change over the range.
|
|
2295
|
+
* `entries` is every entry the member has, in any order.
|
|
2296
|
+
*/
|
|
2297
|
+
declare function summarizeBodyProgress(entries: ReadonlyArray<Pick<BodyMeasurement, "date"> & BodyMeasurementValues>, rangeStart: string | null): BodyFieldSummary[];
|
|
2298
|
+
/** The date `User.weight` follows: the latest entry that records a weight. */
|
|
2299
|
+
declare function latestBodyWeight(entries: ReadonlyArray<Pick<BodyMeasurement, "date" | "weightKg">>): number | null;
|
|
2300
|
+
|
|
2174
2301
|
interface PlateLoadingItem {
|
|
2175
2302
|
weightKg: number;
|
|
2176
2303
|
platesPerSide: number;
|
|
@@ -2267,6 +2394,41 @@ declare function leadWorkingWeight(sets: readonly FollowingSet[]): number | null
|
|
|
2267
2394
|
*/
|
|
2268
2395
|
declare function followWorkingLoad<T extends FollowingSet>(sets: readonly T[], equipment: WarmUpEquipment): T[];
|
|
2269
2396
|
|
|
2397
|
+
/** Two linked exercises are a superset; three to this many, a circuit. */
|
|
2398
|
+
declare const EXERCISE_GROUP_MAX = 6;
|
|
2399
|
+
type ExerciseGroupKind = 'SUPERSET' | 'CIRCUIT';
|
|
2400
|
+
declare const EXERCISE_GROUP_KIND_LABELS: Record<ExerciseGroupKind, string>;
|
|
2401
|
+
type Linkable = {
|
|
2402
|
+
linkedToNext?: boolean | null;
|
|
2403
|
+
};
|
|
2404
|
+
interface ExerciseGroup {
|
|
2405
|
+
/** A, B, C… in the order the groups appear in the day. */
|
|
2406
|
+
letter: string;
|
|
2407
|
+
kind: ExerciseGroupKind;
|
|
2408
|
+
/** Positions of the members in the day's exercise list, in order. */
|
|
2409
|
+
indices: number[];
|
|
2410
|
+
}
|
|
2411
|
+
/**
|
|
2412
|
+
* The day's groups, in order. An exercise linked to nothing, and the link of
|
|
2413
|
+
* a day's last exercise, belong to no group.
|
|
2414
|
+
*/
|
|
2415
|
+
declare function exerciseGroups(exercises: readonly Linkable[]): ExerciseGroup[];
|
|
2416
|
+
interface ExerciseGroupPosition {
|
|
2417
|
+
group: ExerciseGroup;
|
|
2418
|
+
/** 1-based place in the round: A1, A2… */
|
|
2419
|
+
position: number;
|
|
2420
|
+
}
|
|
2421
|
+
/** Where one exercise of the day stands, or null when it is on its own. */
|
|
2422
|
+
declare function exerciseGroupPosition(exercises: readonly Linkable[], index: number): ExerciseGroupPosition | null;
|
|
2423
|
+
/** "Superset A1", "Circuit B3". */
|
|
2424
|
+
declare const exerciseGroupLabel: ({ group, position }: ExerciseGroupPosition) => string;
|
|
2425
|
+
/** Whether linking exercise `index` to the next would make a group too large. */
|
|
2426
|
+
declare function canLinkToNext(exercises: readonly Linkable[], index: number): boolean;
|
|
2427
|
+
/** A day's links as they may be stored: the last exercise never links. */
|
|
2428
|
+
declare function normalizeExerciseLinks<T extends Linkable>(exercises: readonly T[]): T[];
|
|
2429
|
+
/** A group larger than `EXERCISE_GROUP_MAX`, which no day may hold. */
|
|
2430
|
+
declare function hasOversizedGroup(exercises: readonly Linkable[]): boolean;
|
|
2431
|
+
|
|
2270
2432
|
/**
|
|
2271
2433
|
* INTEL-02: a lighter period proposed from the signals `PROG-10` states. The
|
|
2272
2434
|
* suggestion acts on evidence only -- it names what was marked and when, never
|
|
@@ -3529,6 +3691,12 @@ interface AccountExportTrainingEvent {
|
|
|
3529
3691
|
schemaVersion: number;
|
|
3530
3692
|
payload: unknown;
|
|
3531
3693
|
}
|
|
3694
|
+
/** Weight in kilograms, lengths in centimetres. */
|
|
3695
|
+
interface AccountExportBodyMeasurement extends BodyMeasurementValues {
|
|
3696
|
+
date: string;
|
|
3697
|
+
createdAt: IsoDateString;
|
|
3698
|
+
updatedAt: IsoDateString;
|
|
3699
|
+
}
|
|
3532
3700
|
interface AccountExportGoal {
|
|
3533
3701
|
type: string;
|
|
3534
3702
|
direction: string;
|
|
@@ -3588,6 +3756,8 @@ interface AccountExportV1 {
|
|
|
3588
3756
|
personalRecords: AccountExportPersonalRecord[];
|
|
3589
3757
|
trainingEvents: AccountExportTrainingEvent[];
|
|
3590
3758
|
goals: AccountExportGoal[];
|
|
3759
|
+
/** PROG-12: every dated body weight and measurement entry. */
|
|
3760
|
+
bodyMeasurements?: AccountExportBodyMeasurement[];
|
|
3591
3761
|
trainingLocations: AccountExportTrainingLocation[];
|
|
3592
3762
|
scheduleOverrides: AccountExportScheduleOverride[];
|
|
3593
3763
|
exercises: {
|
|
@@ -3652,4 +3822,4 @@ interface AccountExportV1 {
|
|
|
3652
3822
|
/** The file name a download of the export is saved under. */
|
|
3653
3823
|
declare function accountExportFileName(username: string, exportedAt: string): string;
|
|
3654
3824
|
|
|
3655
|
-
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, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, 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, CUSTOM_EXERCISES_MAX, CUSTOM_EXERCISE_NAME_MAX, CUSTOM_EXERCISE_NOTE_MAX, CUSTOM_EXERCISE_PROBLEM_MESSAGES, CUSTOM_EXERCISE_REFUSALS, 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, type CustomExerciseInput, type CustomExerciseProblem, type CustomExerciseRefusal, 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, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, 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, OTHER_WARM_UP_STEPS, 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, PLATE_SETS, 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 PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, 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 UpdateCustomExerciseRequest, 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 WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, 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, buildWarmUpRamp, calculatePlateLoading, countsAsWork, countsForProgression, customExerciseProblem, defaultWarmUpEquipment, deloadLengthDays, exerciseNameKey, followWorkingLoad, isBarLoaded, isSetKind, isWithinQuietHours, leadWorkingWeight, matchesDeletionConfirmation, normalizeExerciseName, primaryEquipment, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers, warmUpLoad };
|
|
3825
|
+
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 AccountExportBodyMeasurement, 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, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, BLOCKED_MEMBERS_MAX, BODY_MEASUREMENT_FIELDS, BODY_MEASUREMENT_FIELD_KEYS, BODY_PROGRESS_RANGES, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type BodyFieldSummary, type BodyMeasurement, type BodyMeasurementField, type BodyMeasurementProblem, type BodyMeasurementValues, type BodyProgressRange, type BodyProgressResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, CUSTOM_EXERCISES_MAX, CUSTOM_EXERCISE_NAME_MAX, CUSTOM_EXERCISE_NOTE_MAX, CUSTOM_EXERCISE_PROBLEM_MESSAGES, CUSTOM_EXERCISE_REFUSALS, 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, type CustomExerciseInput, type CustomExerciseProblem, type CustomExerciseRefusal, 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_GROUP_KIND_LABELS, EXERCISE_GROUP_MAX, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseGroup, type ExerciseGroupKind, type ExerciseGroupPosition, 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, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, 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, OTHER_WARM_UP_STEPS, 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, PLATE_SETS, 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 PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, 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 UpdateCustomExerciseRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertBodyMeasurementRequest, 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 WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, 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, bodyMeasurementProblems, bodyProgressRangeStart, buildWarmUpRamp, calculatePlateLoading, canLinkToNext, countsAsWork, countsForProgression, customExerciseProblem, defaultWarmUpEquipment, deloadLengthDays, exerciseGroupLabel, exerciseGroupPosition, exerciseGroups, exerciseNameKey, followWorkingLoad, hasOversizedGroup, isBarLoaded, isBodyMeasurementDate, isSetKind, isWithinQuietHours, latestBodyWeight, leadWorkingWeight, matchesDeletionConfirmation, normalizeExerciseLinks, normalizeExerciseName, primaryEquipment, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, summarizeBodyProgress, trainingBlockCovers, warmUpLoad };
|
package/dist/index.d.ts
CHANGED
|
@@ -406,6 +406,11 @@ interface RoutineExercise {
|
|
|
406
406
|
minWeightIncrement: number;
|
|
407
407
|
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
408
408
|
warmUpsFollowLoad?: boolean;
|
|
409
|
+
/**
|
|
410
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
411
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
412
|
+
*/
|
|
413
|
+
linkedToNext?: boolean;
|
|
409
414
|
exercise: {
|
|
410
415
|
id: string;
|
|
411
416
|
name: string;
|
|
@@ -423,6 +428,11 @@ interface CreateRoutineExerciseInput {
|
|
|
423
428
|
minWeightIncrement: number;
|
|
424
429
|
/** LIVE-20: warm-ups with a share follow the first working set. */
|
|
425
430
|
warmUpsFollowLoad?: boolean;
|
|
431
|
+
/**
|
|
432
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
433
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
434
|
+
*/
|
|
435
|
+
linkedToNext?: boolean;
|
|
426
436
|
sets: RoutineSet[];
|
|
427
437
|
}
|
|
428
438
|
interface RoutineDay {
|
|
@@ -553,6 +563,11 @@ interface RoutineVersionExercise {
|
|
|
553
563
|
minWeightIncrement: number;
|
|
554
564
|
/** LIVE-20; absent in setups captured before it. */
|
|
555
565
|
warmUpsFollowLoad?: boolean;
|
|
566
|
+
/**
|
|
567
|
+
* ROUT-12: done in rounds with the next exercise of the day (a superset,
|
|
568
|
+
* or a circuit of three to six); see `exerciseGroups`.
|
|
569
|
+
*/
|
|
570
|
+
linkedToNext?: boolean;
|
|
556
571
|
sets: RoutineSet[];
|
|
557
572
|
}
|
|
558
573
|
interface RoutineVersionDay {
|
|
@@ -754,6 +769,8 @@ interface WorkoutSession {
|
|
|
754
769
|
note?: string | null;
|
|
755
770
|
progressionScheme: ProgressionScheme;
|
|
756
771
|
minWeightIncrement: number;
|
|
772
|
+
/** ROUT-12: done in rounds with the next exercise of the day. */
|
|
773
|
+
linkedToNext?: boolean;
|
|
757
774
|
exercise: {
|
|
758
775
|
id: string;
|
|
759
776
|
name: string;
|
|
@@ -1756,6 +1773,8 @@ interface ProfilePrivacySettings {
|
|
|
1756
1773
|
routines: ProfileVisibility;
|
|
1757
1774
|
achievements: ProfileVisibility;
|
|
1758
1775
|
bodyMetrics: ProfileVisibility;
|
|
1776
|
+
/** PROG-12: the dated weight and measurement history, separate from bodyMetrics. */
|
|
1777
|
+
bodyProgress: ProfileVisibility;
|
|
1759
1778
|
}
|
|
1760
1779
|
interface ProfileDiscoverySettings {
|
|
1761
1780
|
discoverableByName: boolean;
|
|
@@ -1771,6 +1790,7 @@ interface ProfileViewerAccess {
|
|
|
1771
1790
|
routines: boolean;
|
|
1772
1791
|
achievements: boolean;
|
|
1773
1792
|
bodyMetrics: boolean;
|
|
1793
|
+
bodyProgress: boolean;
|
|
1774
1794
|
}
|
|
1775
1795
|
interface PublicTrainingSummary {
|
|
1776
1796
|
completedWorkouts: number;
|
|
@@ -1912,8 +1932,13 @@ interface UpdateProfileRequest {
|
|
|
1912
1932
|
weight?: number | null;
|
|
1913
1933
|
height?: number | null;
|
|
1914
1934
|
weightUnit?: WeightUnit;
|
|
1935
|
+
/**
|
|
1936
|
+
* PROG-12: the member's local date (YYYY-MM-DD). A changed weight is also
|
|
1937
|
+
* recorded as that date's body measurement; without it the server uses UTC.
|
|
1938
|
+
*/
|
|
1939
|
+
localDate?: string;
|
|
1915
1940
|
}
|
|
1916
|
-
type UpdateProfilePrivacyRequest = Omit<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity'> & Partial<Pick<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity'>>;
|
|
1941
|
+
type UpdateProfilePrivacyRequest = Omit<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity' | 'bodyProgress'> & Partial<Pick<ProfilePrivacySettings, 'biography' | 'location' | 'trainingIdentity' | 'bodyProgress'>>;
|
|
1917
1942
|
type UpdateProfileDiscoveryRequest = ProfileDiscoverySettings;
|
|
1918
1943
|
interface PlatePairInventory {
|
|
1919
1944
|
weightKg: number;
|
|
@@ -2171,6 +2196,108 @@ interface PersonalGoalsResponse {
|
|
|
2171
2196
|
goals: PersonalGoalProgress[];
|
|
2172
2197
|
}
|
|
2173
2198
|
|
|
2199
|
+
/**
|
|
2200
|
+
* PROG-12: dated body weight and measurements. One entry per member per local
|
|
2201
|
+
* date; every value is optional but an entry holds at least one. Weight is
|
|
2202
|
+
* kilograms whatever unit the account displays, lengths are centimetres.
|
|
2203
|
+
*/
|
|
2204
|
+
declare const BODY_MEASUREMENT_FIELDS: readonly [{
|
|
2205
|
+
readonly key: "weightKg";
|
|
2206
|
+
readonly label: "Weight";
|
|
2207
|
+
readonly unit: "kg";
|
|
2208
|
+
readonly min: 20;
|
|
2209
|
+
readonly max: 1000;
|
|
2210
|
+
}, {
|
|
2211
|
+
readonly key: "waistCm";
|
|
2212
|
+
readonly label: "Waist";
|
|
2213
|
+
readonly unit: "cm";
|
|
2214
|
+
readonly min: 10;
|
|
2215
|
+
readonly max: 300;
|
|
2216
|
+
}, {
|
|
2217
|
+
readonly key: "hipsCm";
|
|
2218
|
+
readonly label: "Hips";
|
|
2219
|
+
readonly unit: "cm";
|
|
2220
|
+
readonly min: 10;
|
|
2221
|
+
readonly max: 300;
|
|
2222
|
+
}, {
|
|
2223
|
+
readonly key: "chestCm";
|
|
2224
|
+
readonly label: "Chest";
|
|
2225
|
+
readonly unit: "cm";
|
|
2226
|
+
readonly min: 10;
|
|
2227
|
+
readonly max: 300;
|
|
2228
|
+
}, {
|
|
2229
|
+
readonly key: "armCm";
|
|
2230
|
+
readonly label: "Arm";
|
|
2231
|
+
readonly unit: "cm";
|
|
2232
|
+
readonly min: 10;
|
|
2233
|
+
readonly max: 300;
|
|
2234
|
+
}, {
|
|
2235
|
+
readonly key: "thighCm";
|
|
2236
|
+
readonly label: "Thigh";
|
|
2237
|
+
readonly unit: "cm";
|
|
2238
|
+
readonly min: 10;
|
|
2239
|
+
readonly max: 300;
|
|
2240
|
+
}, {
|
|
2241
|
+
readonly key: "bodyFatPercent";
|
|
2242
|
+
readonly label: "Body fat";
|
|
2243
|
+
readonly unit: "%";
|
|
2244
|
+
readonly min: 2;
|
|
2245
|
+
readonly max: 75;
|
|
2246
|
+
}];
|
|
2247
|
+
type BodyMeasurementField = (typeof BODY_MEASUREMENT_FIELDS)[number]["key"];
|
|
2248
|
+
declare const BODY_MEASUREMENT_FIELD_KEYS: readonly BodyMeasurementField[];
|
|
2249
|
+
type BodyMeasurementValues = {
|
|
2250
|
+
[K in BodyMeasurementField]: number | null;
|
|
2251
|
+
};
|
|
2252
|
+
interface BodyMeasurement extends BodyMeasurementValues {
|
|
2253
|
+
/** The member's local date, YYYY-MM-DD. */
|
|
2254
|
+
date: string;
|
|
2255
|
+
updatedAt: IsoDateString;
|
|
2256
|
+
}
|
|
2257
|
+
/** PUT /body-measurements/:date. A missing or null value clears that field. */
|
|
2258
|
+
type UpsertBodyMeasurementRequest = Partial<BodyMeasurementValues>;
|
|
2259
|
+
declare const BODY_PROGRESS_RANGES: readonly ["30D", "90D", "1Y", "ALL"];
|
|
2260
|
+
type BodyProgressRange = (typeof BODY_PROGRESS_RANGES)[number];
|
|
2261
|
+
interface BodyFieldSummary {
|
|
2262
|
+
field: BodyMeasurementField;
|
|
2263
|
+
/** The most recent value ever recorded, and its date. */
|
|
2264
|
+
latest: number | null;
|
|
2265
|
+
latestDate: string | null;
|
|
2266
|
+
/**
|
|
2267
|
+
* Latest minus the first value recorded inside the range, when both exist
|
|
2268
|
+
* on different dates inside it; otherwise null.
|
|
2269
|
+
*/
|
|
2270
|
+
change: number | null;
|
|
2271
|
+
changeSince: string | null;
|
|
2272
|
+
}
|
|
2273
|
+
/**
|
|
2274
|
+
* GET /body-measurements (the owner) and
|
|
2275
|
+
* GET /users/:identifier/body-measurements (another member, when their
|
|
2276
|
+
* `bodyProgress` visibility allows it). Entries are the range's, oldest first.
|
|
2277
|
+
*/
|
|
2278
|
+
interface BodyProgressResponse {
|
|
2279
|
+
range: BodyProgressRange;
|
|
2280
|
+
rangeStart: string | null;
|
|
2281
|
+
entries: BodyMeasurement[];
|
|
2282
|
+
summary: BodyFieldSummary[];
|
|
2283
|
+
}
|
|
2284
|
+
declare function isBodyMeasurementDate(value: string): boolean;
|
|
2285
|
+
/** The first date a range covers, counting today; null for ALL. */
|
|
2286
|
+
declare function bodyProgressRangeStart(range: BodyProgressRange, today: string): string | null;
|
|
2287
|
+
/** The field a value is out of bounds for, with the reason in words. */
|
|
2288
|
+
interface BodyMeasurementProblem {
|
|
2289
|
+
field: BodyMeasurementField | null;
|
|
2290
|
+
message: string;
|
|
2291
|
+
}
|
|
2292
|
+
declare function bodyMeasurementProblems(input: UpsertBodyMeasurementRequest): BodyMeasurementProblem[];
|
|
2293
|
+
/**
|
|
2294
|
+
* Per field: the latest value ever recorded and its change over the range.
|
|
2295
|
+
* `entries` is every entry the member has, in any order.
|
|
2296
|
+
*/
|
|
2297
|
+
declare function summarizeBodyProgress(entries: ReadonlyArray<Pick<BodyMeasurement, "date"> & BodyMeasurementValues>, rangeStart: string | null): BodyFieldSummary[];
|
|
2298
|
+
/** The date `User.weight` follows: the latest entry that records a weight. */
|
|
2299
|
+
declare function latestBodyWeight(entries: ReadonlyArray<Pick<BodyMeasurement, "date" | "weightKg">>): number | null;
|
|
2300
|
+
|
|
2174
2301
|
interface PlateLoadingItem {
|
|
2175
2302
|
weightKg: number;
|
|
2176
2303
|
platesPerSide: number;
|
|
@@ -2267,6 +2394,41 @@ declare function leadWorkingWeight(sets: readonly FollowingSet[]): number | null
|
|
|
2267
2394
|
*/
|
|
2268
2395
|
declare function followWorkingLoad<T extends FollowingSet>(sets: readonly T[], equipment: WarmUpEquipment): T[];
|
|
2269
2396
|
|
|
2397
|
+
/** Two linked exercises are a superset; three to this many, a circuit. */
|
|
2398
|
+
declare const EXERCISE_GROUP_MAX = 6;
|
|
2399
|
+
type ExerciseGroupKind = 'SUPERSET' | 'CIRCUIT';
|
|
2400
|
+
declare const EXERCISE_GROUP_KIND_LABELS: Record<ExerciseGroupKind, string>;
|
|
2401
|
+
type Linkable = {
|
|
2402
|
+
linkedToNext?: boolean | null;
|
|
2403
|
+
};
|
|
2404
|
+
interface ExerciseGroup {
|
|
2405
|
+
/** A, B, C… in the order the groups appear in the day. */
|
|
2406
|
+
letter: string;
|
|
2407
|
+
kind: ExerciseGroupKind;
|
|
2408
|
+
/** Positions of the members in the day's exercise list, in order. */
|
|
2409
|
+
indices: number[];
|
|
2410
|
+
}
|
|
2411
|
+
/**
|
|
2412
|
+
* The day's groups, in order. An exercise linked to nothing, and the link of
|
|
2413
|
+
* a day's last exercise, belong to no group.
|
|
2414
|
+
*/
|
|
2415
|
+
declare function exerciseGroups(exercises: readonly Linkable[]): ExerciseGroup[];
|
|
2416
|
+
interface ExerciseGroupPosition {
|
|
2417
|
+
group: ExerciseGroup;
|
|
2418
|
+
/** 1-based place in the round: A1, A2… */
|
|
2419
|
+
position: number;
|
|
2420
|
+
}
|
|
2421
|
+
/** Where one exercise of the day stands, or null when it is on its own. */
|
|
2422
|
+
declare function exerciseGroupPosition(exercises: readonly Linkable[], index: number): ExerciseGroupPosition | null;
|
|
2423
|
+
/** "Superset A1", "Circuit B3". */
|
|
2424
|
+
declare const exerciseGroupLabel: ({ group, position }: ExerciseGroupPosition) => string;
|
|
2425
|
+
/** Whether linking exercise `index` to the next would make a group too large. */
|
|
2426
|
+
declare function canLinkToNext(exercises: readonly Linkable[], index: number): boolean;
|
|
2427
|
+
/** A day's links as they may be stored: the last exercise never links. */
|
|
2428
|
+
declare function normalizeExerciseLinks<T extends Linkable>(exercises: readonly T[]): T[];
|
|
2429
|
+
/** A group larger than `EXERCISE_GROUP_MAX`, which no day may hold. */
|
|
2430
|
+
declare function hasOversizedGroup(exercises: readonly Linkable[]): boolean;
|
|
2431
|
+
|
|
2270
2432
|
/**
|
|
2271
2433
|
* INTEL-02: a lighter period proposed from the signals `PROG-10` states. The
|
|
2272
2434
|
* suggestion acts on evidence only -- it names what was marked and when, never
|
|
@@ -3529,6 +3691,12 @@ interface AccountExportTrainingEvent {
|
|
|
3529
3691
|
schemaVersion: number;
|
|
3530
3692
|
payload: unknown;
|
|
3531
3693
|
}
|
|
3694
|
+
/** Weight in kilograms, lengths in centimetres. */
|
|
3695
|
+
interface AccountExportBodyMeasurement extends BodyMeasurementValues {
|
|
3696
|
+
date: string;
|
|
3697
|
+
createdAt: IsoDateString;
|
|
3698
|
+
updatedAt: IsoDateString;
|
|
3699
|
+
}
|
|
3532
3700
|
interface AccountExportGoal {
|
|
3533
3701
|
type: string;
|
|
3534
3702
|
direction: string;
|
|
@@ -3588,6 +3756,8 @@ interface AccountExportV1 {
|
|
|
3588
3756
|
personalRecords: AccountExportPersonalRecord[];
|
|
3589
3757
|
trainingEvents: AccountExportTrainingEvent[];
|
|
3590
3758
|
goals: AccountExportGoal[];
|
|
3759
|
+
/** PROG-12: every dated body weight and measurement entry. */
|
|
3760
|
+
bodyMeasurements?: AccountExportBodyMeasurement[];
|
|
3591
3761
|
trainingLocations: AccountExportTrainingLocation[];
|
|
3592
3762
|
scheduleOverrides: AccountExportScheduleOverride[];
|
|
3593
3763
|
exercises: {
|
|
@@ -3652,4 +3822,4 @@ interface AccountExportV1 {
|
|
|
3652
3822
|
/** The file name a download of the export is saved under. */
|
|
3653
3823
|
declare function accountExportFileName(username: string, exportedAt: string): string;
|
|
3654
3824
|
|
|
3655
|
-
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, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, 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, CUSTOM_EXERCISES_MAX, CUSTOM_EXERCISE_NAME_MAX, CUSTOM_EXERCISE_NOTE_MAX, CUSTOM_EXERCISE_PROBLEM_MESSAGES, CUSTOM_EXERCISE_REFUSALS, 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, type CustomExerciseInput, type CustomExerciseProblem, type CustomExerciseRefusal, 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, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, 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, OTHER_WARM_UP_STEPS, 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, PLATE_SETS, 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 PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, 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 UpdateCustomExerciseRequest, 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 WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, 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, buildWarmUpRamp, calculatePlateLoading, countsAsWork, countsForProgression, customExerciseProblem, defaultWarmUpEquipment, deloadLengthDays, exerciseNameKey, followWorkingLoad, isBarLoaded, isSetKind, isWithinQuietHours, leadWorkingWeight, matchesDeletionConfirmation, normalizeExerciseName, primaryEquipment, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, trainingBlockCovers, warmUpLoad };
|
|
3825
|
+
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 AccountExportBodyMeasurement, 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, BAR_CHOICES_KG, BAR_WARM_UP_STEPS, BLOCKED_MEMBERS_MAX, BODY_MEASUREMENT_FIELDS, BODY_MEASUREMENT_FIELD_KEYS, BODY_PROGRESS_RANGES, type BlockComparisonLift, type BlockComparisonLiftBest, type BlockComparisonPeriod, type BlockComparisonPeriodKind, type BlockedMember, type BlockedMembersResponse, type BodyFieldSummary, type BodyMeasurement, type BodyMeasurementField, type BodyMeasurementProblem, type BodyMeasurementValues, type BodyProgressRange, type BodyProgressResponse, type Brand, CLONE_ROUTINE_REFUSALS, COMEBACK_MIN_INACTIVE_DAYS, COMEBACK_RECOGNITION_LIMIT, COMEBACK_REQUIRED_ACTIVE_DAYS, COMEBACK_SESSION_LOOKBACK, COMEBACK_WINDOW_DAYS, CUSTOM_EXERCISES_MAX, CUSTOM_EXERCISE_NAME_MAX, CUSTOM_EXERCISE_NOTE_MAX, CUSTOM_EXERCISE_PROBLEM_MESSAGES, CUSTOM_EXERCISE_REFUSALS, 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, type CustomExerciseInput, type CustomExerciseProblem, type CustomExerciseRefusal, 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_GROUP_KIND_LABELS, EXERCISE_GROUP_MAX, EXERCISE_MECHANICS, type EarnedAchievement, type EarnedPersonalRecord, type EffortPeriod, type EffortSignal, type Exercise, type ExerciseEquipment, type ExerciseGroup, type ExerciseGroupKind, type ExerciseGroupPosition, 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, LIMITED_SHORTFALL_KG, type ListSessionsParams, MAX_SETS_PER_EXERCISE, 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, OTHER_WARM_UP_STEPS, 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, PLATE_SETS, 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 PlateLoadingItem, type PlateLoadingResult, type PlatePairInventory, type PlateSetChoice, 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 UpdateCustomExerciseRequest, type UpdateNotificationPreferencesRequest, type UpdateProfileDiscoveryRequest, type UpdateProfilePrivacyRequest, type UpdateProfileRequest, type UpdateRoutineRequest, type UpdateRoutineVisibilityRequest, type UpdateSessionNotesRequest, type UpdateSessionNotesResponse, type UpdateTrainingPartnerPermissionsRequest, type UpsertBodyMeasurementRequest, 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 WarmUpEquipment, type WarmUpLoad, type WarmUpRamp, type WarmUpSet, type WarmUpStep, 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, bodyMeasurementProblems, bodyProgressRangeStart, buildWarmUpRamp, calculatePlateLoading, canLinkToNext, countsAsWork, countsForProgression, customExerciseProblem, defaultWarmUpEquipment, deloadLengthDays, exerciseGroupLabel, exerciseGroupPosition, exerciseGroups, exerciseNameKey, followWorkingLoad, hasOversizedGroup, isBarLoaded, isBodyMeasurementDate, isSetKind, isWithinQuietHours, latestBodyWeight, leadWorkingWeight, matchesDeletionConfirmation, normalizeExerciseLinks, normalizeExerciseName, primaryEquipment, requiredToFinish, resolveActiveTrainingBlock, resolveRoutinePlan, routineDayLabel, sessionCorrectionWindow, setKindOf, setLogValuesDiffer, summarizeBodyProgress, trainingBlockCovers, warmUpLoad };
|
package/dist/index.js
CHANGED
|
@@ -264,6 +264,92 @@ var MEASURABLE_GOAL_TYPES = [
|
|
|
264
264
|
var MEASURABLE_GOAL_DIRECTIONS = ["AT_LEAST", "AT_MOST"];
|
|
265
265
|
var MEASURABLE_GOALS_MAX = 8;
|
|
266
266
|
|
|
267
|
+
// src/body-measurements.ts
|
|
268
|
+
var BODY_MEASUREMENT_FIELDS = [
|
|
269
|
+
{ key: "weightKg", label: "Weight", unit: "kg", min: 20, max: 1e3 },
|
|
270
|
+
{ key: "waistCm", label: "Waist", unit: "cm", min: 10, max: 300 },
|
|
271
|
+
{ key: "hipsCm", label: "Hips", unit: "cm", min: 10, max: 300 },
|
|
272
|
+
{ key: "chestCm", label: "Chest", unit: "cm", min: 10, max: 300 },
|
|
273
|
+
{ key: "armCm", label: "Arm", unit: "cm", min: 10, max: 300 },
|
|
274
|
+
{ key: "thighCm", label: "Thigh", unit: "cm", min: 10, max: 300 },
|
|
275
|
+
{ key: "bodyFatPercent", label: "Body fat", unit: "%", min: 2, max: 75 }
|
|
276
|
+
];
|
|
277
|
+
var BODY_MEASUREMENT_FIELD_KEYS = BODY_MEASUREMENT_FIELDS.map((field) => field.key);
|
|
278
|
+
var BODY_PROGRESS_RANGES = ["30D", "90D", "1Y", "ALL"];
|
|
279
|
+
var DATE_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
280
|
+
function isBodyMeasurementDate(value) {
|
|
281
|
+
const match = DATE_PATTERN.exec(value);
|
|
282
|
+
if (!match) return false;
|
|
283
|
+
const date = /* @__PURE__ */ new Date(`${value}T00:00:00Z`);
|
|
284
|
+
return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === value;
|
|
285
|
+
}
|
|
286
|
+
function shiftDate(date, days) {
|
|
287
|
+
const shifted = /* @__PURE__ */ new Date(`${date}T00:00:00Z`);
|
|
288
|
+
shifted.setUTCDate(shifted.getUTCDate() + days);
|
|
289
|
+
return shifted.toISOString().slice(0, 10);
|
|
290
|
+
}
|
|
291
|
+
function bodyProgressRangeStart(range, today) {
|
|
292
|
+
switch (range) {
|
|
293
|
+
case "30D":
|
|
294
|
+
return shiftDate(today, -29);
|
|
295
|
+
case "90D":
|
|
296
|
+
return shiftDate(today, -89);
|
|
297
|
+
case "1Y":
|
|
298
|
+
return shiftDate(today, -364);
|
|
299
|
+
case "ALL":
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
function bodyMeasurementProblems(input) {
|
|
304
|
+
const problems = [];
|
|
305
|
+
let values = 0;
|
|
306
|
+
for (const field of BODY_MEASUREMENT_FIELDS) {
|
|
307
|
+
const value = input[field.key];
|
|
308
|
+
if (value === void 0 || value === null) continue;
|
|
309
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
310
|
+
problems.push({ field: field.key, message: `${field.label} must be a number` });
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
values += 1;
|
|
314
|
+
if (value < field.min || value > field.max) {
|
|
315
|
+
problems.push({
|
|
316
|
+
field: field.key,
|
|
317
|
+
message: `${field.label} must be between ${field.min} and ${field.max} ${field.unit}`
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (values === 0 && problems.length === 0) {
|
|
322
|
+
problems.push({ field: null, message: "Add at least one measurement" });
|
|
323
|
+
}
|
|
324
|
+
return problems;
|
|
325
|
+
}
|
|
326
|
+
function summarizeBodyProgress(entries, rangeStart) {
|
|
327
|
+
const ordered = [...entries].sort((a, b) => a.date.localeCompare(b.date));
|
|
328
|
+
return BODY_MEASUREMENT_FIELD_KEYS.map((field) => {
|
|
329
|
+
const recorded = ordered.filter((entry) => entry[field] !== null);
|
|
330
|
+
const latestEntry = recorded[recorded.length - 1] ?? null;
|
|
331
|
+
const firstInRange = recorded.find((entry) => rangeStart === null || entry.date >= rangeStart) ?? null;
|
|
332
|
+
const hasChange = latestEntry !== null && firstInRange !== null && firstInRange.date !== latestEntry.date;
|
|
333
|
+
return {
|
|
334
|
+
field,
|
|
335
|
+
latest: latestEntry?.[field] ?? null,
|
|
336
|
+
latestDate: latestEntry?.date ?? null,
|
|
337
|
+
change: hasChange ? Math.round((latestEntry[field] - firstInRange[field]) * 100) / 100 : null,
|
|
338
|
+
changeSince: hasChange ? firstInRange.date : null
|
|
339
|
+
};
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
function latestBodyWeight(entries) {
|
|
343
|
+
let latest = null;
|
|
344
|
+
for (const entry of entries) {
|
|
345
|
+
if (entry.weightKg === null) continue;
|
|
346
|
+
if (latest === null || entry.date > latest.date) {
|
|
347
|
+
latest = { date: entry.date, weightKg: entry.weightKg };
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return latest?.weightKg ?? null;
|
|
351
|
+
}
|
|
352
|
+
|
|
267
353
|
// src/achievements.ts
|
|
268
354
|
var ACHIEVEMENT_CATEGORIES = [
|
|
269
355
|
"SESSIONS",
|
|
@@ -646,6 +732,59 @@ function followWorkingLoad(sets, equipment) {
|
|
|
646
732
|
);
|
|
647
733
|
}
|
|
648
734
|
|
|
735
|
+
// src/exercise-groups.ts
|
|
736
|
+
var EXERCISE_GROUP_MAX = 6;
|
|
737
|
+
var EXERCISE_GROUP_KIND_LABELS = {
|
|
738
|
+
SUPERSET: "Superset",
|
|
739
|
+
CIRCUIT: "Circuit"
|
|
740
|
+
};
|
|
741
|
+
var letterFor = (index) => index < 26 ? String.fromCharCode(65 + index) : letterFor(Math.floor(index / 26) - 1) + letterFor(index % 26);
|
|
742
|
+
function exerciseGroups(exercises) {
|
|
743
|
+
const groups = [];
|
|
744
|
+
let index = 0;
|
|
745
|
+
while (index < exercises.length) {
|
|
746
|
+
const indices = [index];
|
|
747
|
+
while (exercises[indices[indices.length - 1]].linkedToNext && indices[indices.length - 1] + 1 < exercises.length) {
|
|
748
|
+
indices.push(indices[indices.length - 1] + 1);
|
|
749
|
+
}
|
|
750
|
+
if (indices.length > 1) {
|
|
751
|
+
groups.push({
|
|
752
|
+
letter: letterFor(groups.length),
|
|
753
|
+
kind: indices.length === 2 ? "SUPERSET" : "CIRCUIT",
|
|
754
|
+
indices
|
|
755
|
+
});
|
|
756
|
+
}
|
|
757
|
+
index = indices[indices.length - 1] + 1;
|
|
758
|
+
}
|
|
759
|
+
return groups;
|
|
760
|
+
}
|
|
761
|
+
function exerciseGroupPosition(exercises, index) {
|
|
762
|
+
for (const group of exerciseGroups(exercises)) {
|
|
763
|
+
const at = group.indices.indexOf(index);
|
|
764
|
+
if (at >= 0) return { group, position: at + 1 };
|
|
765
|
+
}
|
|
766
|
+
return null;
|
|
767
|
+
}
|
|
768
|
+
var exerciseGroupLabel = ({ group, position }) => `${EXERCISE_GROUP_KIND_LABELS[group.kind]} ${group.letter}${position}`;
|
|
769
|
+
function canLinkToNext(exercises, index) {
|
|
770
|
+
if (index < 0 || index >= exercises.length - 1) return false;
|
|
771
|
+
let start = index;
|
|
772
|
+
while (start > 0 && exercises[start - 1].linkedToNext) start -= 1;
|
|
773
|
+
let end = index + 1;
|
|
774
|
+
while (end < exercises.length - 1 && exercises[end].linkedToNext) end += 1;
|
|
775
|
+
return end - start + 1 <= EXERCISE_GROUP_MAX;
|
|
776
|
+
}
|
|
777
|
+
function normalizeExerciseLinks(exercises) {
|
|
778
|
+
return exercises.map(
|
|
779
|
+
(exercise, index) => exercise.linkedToNext && index === exercises.length - 1 ? { ...exercise, linkedToNext: false } : exercise
|
|
780
|
+
);
|
|
781
|
+
}
|
|
782
|
+
function hasOversizedGroup(exercises) {
|
|
783
|
+
return exerciseGroups(exercises).some(
|
|
784
|
+
(group) => group.indices.length > EXERCISE_GROUP_MAX
|
|
785
|
+
);
|
|
786
|
+
}
|
|
787
|
+
|
|
649
788
|
// src/routine.ts
|
|
650
789
|
var ROUTINE_SCHEDULE_MODES = ["WEEKLY", "ROTATION"];
|
|
651
790
|
var ROUTINE_DAYS_MAX = 7;
|
|
@@ -1073,6 +1212,9 @@ export {
|
|
|
1073
1212
|
BAR_CHOICES_KG,
|
|
1074
1213
|
BAR_WARM_UP_STEPS,
|
|
1075
1214
|
BLOCKED_MEMBERS_MAX,
|
|
1215
|
+
BODY_MEASUREMENT_FIELDS,
|
|
1216
|
+
BODY_MEASUREMENT_FIELD_KEYS,
|
|
1217
|
+
BODY_PROGRESS_RANGES,
|
|
1076
1218
|
CLONE_ROUTINE_REFUSALS,
|
|
1077
1219
|
COMEBACK_MIN_INACTIVE_DAYS,
|
|
1078
1220
|
COMEBACK_RECOGNITION_LIMIT,
|
|
@@ -1097,6 +1239,8 @@ export {
|
|
|
1097
1239
|
DELOAD_SUGGESTION_ROUTINE_DAYS,
|
|
1098
1240
|
DELOAD_SUGGESTION_SIGNALS,
|
|
1099
1241
|
EXERCISE_EQUIPMENT,
|
|
1242
|
+
EXERCISE_GROUP_KIND_LABELS,
|
|
1243
|
+
EXERCISE_GROUP_MAX,
|
|
1100
1244
|
EXERCISE_MECHANICS,
|
|
1101
1245
|
FEATURED_PROFILE_ITEMS_MAX,
|
|
1102
1246
|
FEATURED_PROFILE_ITEM_KINDS,
|
|
@@ -1221,20 +1365,30 @@ export {
|
|
|
1221
1365
|
WORKOUT_SESSION_STATUSES,
|
|
1222
1366
|
accountExportFileName,
|
|
1223
1367
|
applyDeload,
|
|
1368
|
+
bodyMeasurementProblems,
|
|
1369
|
+
bodyProgressRangeStart,
|
|
1224
1370
|
buildWarmUpRamp,
|
|
1225
1371
|
calculatePlateLoading,
|
|
1372
|
+
canLinkToNext,
|
|
1226
1373
|
countsAsWork,
|
|
1227
1374
|
countsForProgression,
|
|
1228
1375
|
customExerciseProblem,
|
|
1229
1376
|
defaultWarmUpEquipment,
|
|
1230
1377
|
deloadLengthDays,
|
|
1378
|
+
exerciseGroupLabel,
|
|
1379
|
+
exerciseGroupPosition,
|
|
1380
|
+
exerciseGroups,
|
|
1231
1381
|
exerciseNameKey,
|
|
1232
1382
|
followWorkingLoad,
|
|
1383
|
+
hasOversizedGroup,
|
|
1233
1384
|
isBarLoaded,
|
|
1385
|
+
isBodyMeasurementDate,
|
|
1234
1386
|
isSetKind,
|
|
1235
1387
|
isWithinQuietHours,
|
|
1388
|
+
latestBodyWeight,
|
|
1236
1389
|
leadWorkingWeight,
|
|
1237
1390
|
matchesDeletionConfirmation,
|
|
1391
|
+
normalizeExerciseLinks,
|
|
1238
1392
|
normalizeExerciseName,
|
|
1239
1393
|
primaryEquipment,
|
|
1240
1394
|
requiredToFinish,
|
|
@@ -1244,6 +1398,7 @@ export {
|
|
|
1244
1398
|
sessionCorrectionWindow,
|
|
1245
1399
|
setKindOf,
|
|
1246
1400
|
setLogValuesDiffer,
|
|
1401
|
+
summarizeBodyProgress,
|
|
1247
1402
|
trainingBlockCovers,
|
|
1248
1403
|
warmUpLoad
|
|
1249
1404
|
};
|