@sunsteel/contracts 0.63.0 → 0.65.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 +142 -2
- package/dist/index.d.cts +1509 -1294
- package/dist/index.d.ts +1509 -1294
- package/dist/index.js +127 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -44,6 +44,13 @@ __export(index_exports, {
|
|
|
44
44
|
COMEBACK_REQUIRED_ACTIVE_DAYS: () => COMEBACK_REQUIRED_ACTIVE_DAYS,
|
|
45
45
|
COMEBACK_SESSION_LOOKBACK: () => COMEBACK_SESSION_LOOKBACK,
|
|
46
46
|
COMEBACK_WINDOW_DAYS: () => COMEBACK_WINDOW_DAYS,
|
|
47
|
+
DELOAD_DEFAULT_DAYS: () => DELOAD_DEFAULT_DAYS,
|
|
48
|
+
DELOAD_DEFAULT_LOAD_REDUCTION: () => DELOAD_DEFAULT_LOAD_REDUCTION,
|
|
49
|
+
DELOAD_DEFAULT_SET_MODE: () => DELOAD_DEFAULT_SET_MODE,
|
|
50
|
+
DELOAD_LOAD_REDUCTIONS: () => DELOAD_LOAD_REDUCTIONS,
|
|
51
|
+
DELOAD_MAX_DAYS: () => DELOAD_MAX_DAYS,
|
|
52
|
+
DELOAD_NOT_LIGHTER: () => DELOAD_NOT_LIGHTER,
|
|
53
|
+
DELOAD_SET_MODES: () => DELOAD_SET_MODES,
|
|
47
54
|
EXERCISE_EQUIPMENT: () => EXERCISE_EQUIPMENT,
|
|
48
55
|
EXERCISE_MECHANICS: () => EXERCISE_MECHANICS,
|
|
49
56
|
FEATURED_PROFILE_ITEMS_MAX: () => FEATURED_PROFILE_ITEMS_MAX,
|
|
@@ -132,6 +139,8 @@ __export(index_exports, {
|
|
|
132
139
|
SHARED_ROUTINE_SOURCES: () => SHARED_ROUTINE_SOURCES,
|
|
133
140
|
STARRED_EXERCISES_MAX: () => STARRED_EXERCISES_MAX,
|
|
134
141
|
STREAK_MAX_GAP_DAYS: () => STREAK_MAX_GAP_DAYS,
|
|
142
|
+
TEMPORARY_OVERRIDE_KINDS: () => TEMPORARY_OVERRIDE_KINDS,
|
|
143
|
+
TEMPORARY_OVERRIDE_SOURCE_KINDS: () => TEMPORARY_OVERRIDE_SOURCE_KINDS,
|
|
135
144
|
TRAINING_DISCIPLINE_VALUES: () => TRAINING_DISCIPLINE_VALUES,
|
|
136
145
|
TRAINING_EVENT_TYPES: () => TRAINING_EVENT_TYPES,
|
|
137
146
|
TRAINING_EXPERIENCE_LEVEL_VALUES: () => TRAINING_EXPERIENCE_LEVEL_VALUES,
|
|
@@ -148,11 +157,16 @@ __export(index_exports, {
|
|
|
148
157
|
WEIGHT_UNITS: () => WEIGHT_UNITS,
|
|
149
158
|
WORKOUT_SESSION_STATUSES: () => WORKOUT_SESSION_STATUSES,
|
|
150
159
|
accountExportFileName: () => accountExportFileName,
|
|
160
|
+
applyDeload: () => applyDeload,
|
|
161
|
+
deloadLengthDays: () => deloadLengthDays,
|
|
151
162
|
isWithinQuietHours: () => isWithinQuietHours,
|
|
152
163
|
matchesDeletionConfirmation: () => matchesDeletionConfirmation,
|
|
164
|
+
resolveActiveTrainingBlock: () => resolveActiveTrainingBlock,
|
|
165
|
+
resolveRoutinePlan: () => resolveRoutinePlan,
|
|
153
166
|
routineDayLabel: () => routineDayLabel,
|
|
154
167
|
sessionCorrectionWindow: () => sessionCorrectionWindow,
|
|
155
|
-
setLogValuesDiffer: () => setLogValuesDiffer
|
|
168
|
+
setLogValuesDiffer: () => setLogValuesDiffer,
|
|
169
|
+
trainingBlockCovers: () => trainingBlockCovers
|
|
156
170
|
});
|
|
157
171
|
module.exports = __toCommonJS(index_exports);
|
|
158
172
|
|
|
@@ -521,6 +535,118 @@ var ROUTINE_TRAINING_BLOCK_SOURCE_KINDS = [
|
|
|
521
535
|
"CURRENT_ROUTINE",
|
|
522
536
|
"SAVED_VERSION"
|
|
523
537
|
];
|
|
538
|
+
function trainingBlockCovers(block, date) {
|
|
539
|
+
return block.startDate <= date && date <= block.endDate;
|
|
540
|
+
}
|
|
541
|
+
function resolveActiveTrainingBlock(blocks, date) {
|
|
542
|
+
return blocks?.find((block) => trainingBlockCovers(block, date)) ?? null;
|
|
543
|
+
}
|
|
544
|
+
function resolveRoutinePlan(routine, date) {
|
|
545
|
+
const block = resolveActiveTrainingBlock(routine.trainingBlocks, date);
|
|
546
|
+
const deload = resolveActiveTrainingBlock(routine.temporaryOverrides, date);
|
|
547
|
+
const blockInForce = block ? {
|
|
548
|
+
id: block.id,
|
|
549
|
+
seriesId: block.seriesId,
|
|
550
|
+
revision: block.revision,
|
|
551
|
+
name: block.name,
|
|
552
|
+
startDate: block.startDate,
|
|
553
|
+
endDate: block.endDate
|
|
554
|
+
} : null;
|
|
555
|
+
if (deload) {
|
|
556
|
+
return {
|
|
557
|
+
block: blockInForce,
|
|
558
|
+
override: {
|
|
559
|
+
id: deload.id,
|
|
560
|
+
kind: deload.kind,
|
|
561
|
+
startDate: deload.startDate,
|
|
562
|
+
endDate: deload.endDate
|
|
563
|
+
},
|
|
564
|
+
scheduleMode: deload.scheduleMode,
|
|
565
|
+
restDays: deload.restDays,
|
|
566
|
+
rotationWeekdays: deload.rotationWeekdays,
|
|
567
|
+
nextRotationDayId: deload.nextRotationDayId,
|
|
568
|
+
days: deload.days
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
if (block) {
|
|
572
|
+
return {
|
|
573
|
+
override: null,
|
|
574
|
+
block: {
|
|
575
|
+
id: block.id,
|
|
576
|
+
seriesId: block.seriesId,
|
|
577
|
+
revision: block.revision,
|
|
578
|
+
name: block.name,
|
|
579
|
+
startDate: block.startDate,
|
|
580
|
+
endDate: block.endDate
|
|
581
|
+
},
|
|
582
|
+
scheduleMode: block.scheduleMode,
|
|
583
|
+
restDays: block.restDays,
|
|
584
|
+
rotationWeekdays: block.rotationWeekdays,
|
|
585
|
+
nextRotationDayId: block.nextRotationDayId,
|
|
586
|
+
days: block.days
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
return {
|
|
590
|
+
block: null,
|
|
591
|
+
override: null,
|
|
592
|
+
scheduleMode: routine.scheduleMode,
|
|
593
|
+
restDays: routine.restDays,
|
|
594
|
+
rotationWeekdays: routine.rotationWeekdays ?? [],
|
|
595
|
+
nextRotationDayId: routine.nextRotationDayId ?? null,
|
|
596
|
+
days: routine.days
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
// src/deloads.ts
|
|
601
|
+
var DELOAD_MAX_DAYS = 14;
|
|
602
|
+
var DELOAD_DEFAULT_DAYS = 7;
|
|
603
|
+
var DELOAD_LOAD_REDUCTIONS = [0, 10, 20, 30, 40];
|
|
604
|
+
var DELOAD_DEFAULT_LOAD_REDUCTION = 10;
|
|
605
|
+
var DELOAD_SET_MODES = ["ALL", "HALF"];
|
|
606
|
+
var DELOAD_DEFAULT_SET_MODE = "HALF";
|
|
607
|
+
var TEMPORARY_OVERRIDE_KINDS = ["DELOAD"];
|
|
608
|
+
var TEMPORARY_OVERRIDE_SOURCE_KINDS = [
|
|
609
|
+
"BASELINE",
|
|
610
|
+
"TRAINING_BLOCK"
|
|
611
|
+
];
|
|
612
|
+
var DELOAD_NOT_LIGHTER = "Those options leave every set as it is: choose a lighter load or fewer sets";
|
|
613
|
+
var lighterOnGrid = (original, target, increment) => {
|
|
614
|
+
const step = increment > 0 ? increment : 2.5;
|
|
615
|
+
const stepped = Math.round(Math.round(target / step) * step * 1e3) / 1e3;
|
|
616
|
+
return stepped > 0 && stepped < original ? stepped : original;
|
|
617
|
+
};
|
|
618
|
+
function applyDeload(setup, options) {
|
|
619
|
+
const factor = 1 - options.loadReductionPercent / 100;
|
|
620
|
+
let lighter = false;
|
|
621
|
+
const days = setup.days.map((day) => ({
|
|
622
|
+
...day,
|
|
623
|
+
exercises: day.exercises.map((exercise) => {
|
|
624
|
+
const kept = options.setMode === "HALF" ? exercise.sets.slice(0, Math.ceil(exercise.sets.length / 2)) : exercise.sets;
|
|
625
|
+
if (kept.length < exercise.sets.length) lighter = true;
|
|
626
|
+
return {
|
|
627
|
+
...exercise,
|
|
628
|
+
sets: kept.map((set) => {
|
|
629
|
+
if (typeof set.weight !== "number" || set.weight <= 0) {
|
|
630
|
+
return { ...set };
|
|
631
|
+
}
|
|
632
|
+
if (factor === 1) return { ...set };
|
|
633
|
+
const weight = lighterOnGrid(
|
|
634
|
+
set.weight,
|
|
635
|
+
set.weight * factor,
|
|
636
|
+
exercise.minWeightIncrement
|
|
637
|
+
);
|
|
638
|
+
if (weight < set.weight) lighter = true;
|
|
639
|
+
return { ...set, weight };
|
|
640
|
+
})
|
|
641
|
+
};
|
|
642
|
+
})
|
|
643
|
+
}));
|
|
644
|
+
return lighter ? { ...setup, days } : null;
|
|
645
|
+
}
|
|
646
|
+
function deloadLengthDays(startDate, endDate) {
|
|
647
|
+
const ms = (date) => Date.parse(`${date}T00:00:00Z`);
|
|
648
|
+
return Math.round((ms(endDate) - ms(startDate)) / 864e5) + 1;
|
|
649
|
+
}
|
|
524
650
|
|
|
525
651
|
// src/routine-sharing.ts
|
|
526
652
|
var ROUTINE_VISIBILITY_VALUES = [
|
|
@@ -761,6 +887,13 @@ function accountExportFileName(username, exportedAt) {
|
|
|
761
887
|
COMEBACK_REQUIRED_ACTIVE_DAYS,
|
|
762
888
|
COMEBACK_SESSION_LOOKBACK,
|
|
763
889
|
COMEBACK_WINDOW_DAYS,
|
|
890
|
+
DELOAD_DEFAULT_DAYS,
|
|
891
|
+
DELOAD_DEFAULT_LOAD_REDUCTION,
|
|
892
|
+
DELOAD_DEFAULT_SET_MODE,
|
|
893
|
+
DELOAD_LOAD_REDUCTIONS,
|
|
894
|
+
DELOAD_MAX_DAYS,
|
|
895
|
+
DELOAD_NOT_LIGHTER,
|
|
896
|
+
DELOAD_SET_MODES,
|
|
764
897
|
EXERCISE_EQUIPMENT,
|
|
765
898
|
EXERCISE_MECHANICS,
|
|
766
899
|
FEATURED_PROFILE_ITEMS_MAX,
|
|
@@ -849,6 +982,8 @@ function accountExportFileName(username, exportedAt) {
|
|
|
849
982
|
SHARED_ROUTINE_SOURCES,
|
|
850
983
|
STARRED_EXERCISES_MAX,
|
|
851
984
|
STREAK_MAX_GAP_DAYS,
|
|
985
|
+
TEMPORARY_OVERRIDE_KINDS,
|
|
986
|
+
TEMPORARY_OVERRIDE_SOURCE_KINDS,
|
|
852
987
|
TRAINING_DISCIPLINE_VALUES,
|
|
853
988
|
TRAINING_EVENT_TYPES,
|
|
854
989
|
TRAINING_EXPERIENCE_LEVEL_VALUES,
|
|
@@ -865,9 +1000,14 @@ function accountExportFileName(username, exportedAt) {
|
|
|
865
1000
|
WEIGHT_UNITS,
|
|
866
1001
|
WORKOUT_SESSION_STATUSES,
|
|
867
1002
|
accountExportFileName,
|
|
1003
|
+
applyDeload,
|
|
1004
|
+
deloadLengthDays,
|
|
868
1005
|
isWithinQuietHours,
|
|
869
1006
|
matchesDeletionConfirmation,
|
|
1007
|
+
resolveActiveTrainingBlock,
|
|
1008
|
+
resolveRoutinePlan,
|
|
870
1009
|
routineDayLabel,
|
|
871
1010
|
sessionCorrectionWindow,
|
|
872
|
-
setLogValuesDiffer
|
|
1011
|
+
setLogValuesDiffer,
|
|
1012
|
+
trainingBlockCovers
|
|
873
1013
|
});
|