hevy-shared 1.0.856 → 1.0.857
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/built/index.d.ts +4 -0
- package/built/utils.d.ts +2 -1
- package/built/utils.js +20 -1
- package/package.json +1 -1
package/built/index.d.ts
CHANGED
|
@@ -1897,6 +1897,10 @@ export interface ExerciseSetHistory {
|
|
|
1897
1897
|
custom_metric: number | null;
|
|
1898
1898
|
set_index: number;
|
|
1899
1899
|
}
|
|
1900
|
+
export interface ExerciseInstructionsStep {
|
|
1901
|
+
index?: number;
|
|
1902
|
+
description: string;
|
|
1903
|
+
}
|
|
1900
1904
|
export interface WorkoutExerciseHistory {
|
|
1901
1905
|
workout_id: string;
|
|
1902
1906
|
workout_title: string;
|
package/built/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Dayjs } from 'dayjs';
|
|
2
|
-
import { BaseExerciseTemplate, ExerciseType, FormatAtText, Result, SetType, StrengthLevel, UserExerciseSet, UserFacingSetIndicator, Weekday } from '.';
|
|
2
|
+
import { BaseExerciseTemplate, ExerciseInstructionsStep, ExerciseType, FormatAtText, Result, SetType, StrengthLevel, UserExerciseSet, UserFacingSetIndicator, Weekday } from '.';
|
|
3
3
|
/**
|
|
4
4
|
* Doesn't matter what you throw in the function it'll
|
|
5
5
|
* always return a number. Non number values will return
|
|
@@ -249,4 +249,5 @@ export declare const startOfWeek: (d: Dayjs, firstDayOfWeek: Weekday) => Dayjs;
|
|
|
249
249
|
export declare const weekdayNumberMap: {
|
|
250
250
|
[key in Weekday]: number;
|
|
251
251
|
};
|
|
252
|
+
export declare const rawInstructionsToIndexedSteps: (rawInstructions: string) => ExerciseInstructionsStep[];
|
|
252
253
|
export {};
|
package/built/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.startOfWeek = exports.calculateCurrentWeekStreak = exports.getYoutubeVideoId = exports.validateYoutubeUrl = exports.splitAtUsernamesAndLinks = exports.isVersionAGreaterOrEqualToVersionB = exports.generateUserGroupValue = exports.generateUserGroup = exports.isBaseExerciseTemplate = exports.getStrengthLevelFromPercentile = exports.numberToLocaleString = exports.numberWithCommas = exports.setVolume = exports.oneRepMax = exports.oneRepMaxPercentageMap = exports.getEstimatedExercisesDurationSeconds = exports.ESTIMATED_REST_TIMER_DURATION = exports.ESTIMATED_SET_DURATION = exports.UserFacingIndicatorToSetIndicator = exports.workoutSetCount = exports.userExerciseSetWeight = exports.workoutDistanceMeters = exports.workoutReps = exports.workoutDurationSeconds = exports.removeAccents = exports.getClosestDataPointAroundTargetDate = exports.getClosestDataPointBeforeTargetDate = exports.findMapped = exports.stringToNumber = exports.forceStringToNumber = exports.formatDurationInput = exports.isValidFormattedTime = exports.isWholeNumber = exports.isNumber = exports.isValidUuid = exports.isValidPhoneNumber = exports.isValidWebUrl = exports.URL_REGEX = exports.isValidEmail = exports.secondsToWordFormatMinutes = exports.secondsToWordFormat = exports.secondsToClockFormat = exports.secondsToClockParts = exports.isValidUsername = exports.roundToWholeNumber = exports.roundToOneDecimal = exports.roundToTwoDecimal = exports.divide = exports.clampNumber = exports.num = void 0;
|
|
7
|
-
exports.weekdayNumberMap = void 0;
|
|
7
|
+
exports.rawInstructionsToIndexedSteps = exports.weekdayNumberMap = void 0;
|
|
8
8
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
9
|
/**
|
|
10
10
|
* Doesn't matter what you throw in the function it'll
|
|
@@ -775,3 +775,22 @@ exports.weekdayNumberMap = {
|
|
|
775
775
|
friday: 5,
|
|
776
776
|
saturday: 6,
|
|
777
777
|
};
|
|
778
|
+
const rawInstructionsToIndexedSteps = (rawInstructions) => {
|
|
779
|
+
const instructionsByLine = rawInstructions
|
|
780
|
+
.split('\n')
|
|
781
|
+
.map((l) => l.trim())
|
|
782
|
+
.filter((l) => l.length > 0);
|
|
783
|
+
const instructionsByStep = instructionsByLine.map((s) => {
|
|
784
|
+
var _a, _b;
|
|
785
|
+
const parsedStep = s.match(/^([0-9]*)\\?\.(.*)$/);
|
|
786
|
+
if (!parsedStep) {
|
|
787
|
+
// this line doesn't contain a number, so just return it unchanged
|
|
788
|
+
return { description: s };
|
|
789
|
+
}
|
|
790
|
+
const index = Number(parsedStep[1]) || undefined; // if it's NaN or 0, convert it to undefined
|
|
791
|
+
const description = (_b = (_a = parsedStep[2]) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : s;
|
|
792
|
+
return { index, description };
|
|
793
|
+
});
|
|
794
|
+
return instructionsByStep;
|
|
795
|
+
};
|
|
796
|
+
exports.rawInstructionsToIndexedSteps = rawInstructionsToIndexedSteps;
|