hevy-shared 1.0.873 → 1.0.874
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/API/APIClient.js +14 -21
- package/built/index.d.ts +23 -0
- package/built/notifications.d.ts +2 -8
- package/built/utils.d.ts +2 -1
- package/built/utils.js +20 -1
- package/package.json +1 -1
package/built/API/APIClient.js
CHANGED
|
@@ -226,12 +226,11 @@ class HevyAPIClient {
|
|
|
226
226
|
const userContext = this._config.getUserContext();
|
|
227
227
|
yield this.refreshExpiredAuthToken(userContext);
|
|
228
228
|
const method = 'get';
|
|
229
|
-
const headers = this._authHeaders;
|
|
230
229
|
return this._handleResponse({
|
|
231
230
|
method,
|
|
232
231
|
url,
|
|
233
|
-
headers,
|
|
234
|
-
try: () => this._httpClient[method](url, this._addHeaders(
|
|
232
|
+
headers: this._authHeaders,
|
|
233
|
+
try: () => this._httpClient[method](url, this._addHeaders(this._authHeaders, config)),
|
|
235
234
|
}, userContext);
|
|
236
235
|
});
|
|
237
236
|
}
|
|
@@ -240,12 +239,11 @@ class HevyAPIClient {
|
|
|
240
239
|
const userContext = this._config.getUserContext();
|
|
241
240
|
yield this.refreshExpiredAuthToken(userContext);
|
|
242
241
|
const method = 'delete';
|
|
243
|
-
const headers = this._authHeaders;
|
|
244
242
|
return this._handleResponse({
|
|
245
243
|
method,
|
|
246
244
|
url,
|
|
247
|
-
headers,
|
|
248
|
-
try: () => this._httpClient[method](url, this._addHeaders(
|
|
245
|
+
headers: this._authHeaders,
|
|
246
|
+
try: () => this._httpClient[method](url, this._addHeaders(this._authHeaders, config)),
|
|
249
247
|
}, userContext);
|
|
250
248
|
});
|
|
251
249
|
}
|
|
@@ -254,12 +252,11 @@ class HevyAPIClient {
|
|
|
254
252
|
const userContext = this._config.getUserContext();
|
|
255
253
|
yield this.refreshExpiredAuthToken(userContext);
|
|
256
254
|
const method = 'head';
|
|
257
|
-
const headers = this._authHeaders;
|
|
258
255
|
return this._handleResponse({
|
|
259
256
|
method,
|
|
260
257
|
url,
|
|
261
|
-
headers,
|
|
262
|
-
try: () => this._httpClient[method](url, this._addHeaders(
|
|
258
|
+
headers: this._authHeaders,
|
|
259
|
+
try: () => this._httpClient[method](url, this._addHeaders(this._authHeaders, config)),
|
|
263
260
|
}, userContext);
|
|
264
261
|
});
|
|
265
262
|
}
|
|
@@ -268,12 +265,11 @@ class HevyAPIClient {
|
|
|
268
265
|
const userContext = this._config.getUserContext();
|
|
269
266
|
yield this.refreshExpiredAuthToken(userContext);
|
|
270
267
|
const method = 'options';
|
|
271
|
-
const headers = this._authHeaders;
|
|
272
268
|
return this._handleResponse({
|
|
273
269
|
method,
|
|
274
270
|
url,
|
|
275
|
-
headers,
|
|
276
|
-
try: () => this._httpClient[method](url, this._addHeaders(
|
|
271
|
+
headers: this._authHeaders,
|
|
272
|
+
try: () => this._httpClient[method](url, this._addHeaders(this._authHeaders, config)),
|
|
277
273
|
}, userContext);
|
|
278
274
|
});
|
|
279
275
|
}
|
|
@@ -282,12 +278,11 @@ class HevyAPIClient {
|
|
|
282
278
|
const userContext = this._config.getUserContext();
|
|
283
279
|
yield this.refreshExpiredAuthToken(userContext);
|
|
284
280
|
const method = 'post';
|
|
285
|
-
const headers = this._authHeaders;
|
|
286
281
|
return this._handleResponse({
|
|
287
282
|
method,
|
|
288
283
|
url,
|
|
289
|
-
headers,
|
|
290
|
-
try: () => this._httpClient[method](url, data, this._addHeaders(
|
|
284
|
+
headers: this._authHeaders,
|
|
285
|
+
try: () => this._httpClient[method](url, data, this._addHeaders(this._authHeaders, config)),
|
|
291
286
|
}, userContext);
|
|
292
287
|
});
|
|
293
288
|
}
|
|
@@ -296,12 +291,11 @@ class HevyAPIClient {
|
|
|
296
291
|
const userContext = this._config.getUserContext();
|
|
297
292
|
yield this.refreshExpiredAuthToken(userContext);
|
|
298
293
|
const method = 'put';
|
|
299
|
-
const headers = this._authHeaders;
|
|
300
294
|
return this._handleResponse({
|
|
301
295
|
method,
|
|
302
296
|
url,
|
|
303
|
-
headers,
|
|
304
|
-
try: () => this._httpClient[method](url, data, this._addHeaders(
|
|
297
|
+
headers: this._authHeaders,
|
|
298
|
+
try: () => this._httpClient[method](url, data, this._addHeaders(this._authHeaders, config)),
|
|
305
299
|
}, userContext);
|
|
306
300
|
});
|
|
307
301
|
}
|
|
@@ -310,12 +304,11 @@ class HevyAPIClient {
|
|
|
310
304
|
const userContext = this._config.getUserContext();
|
|
311
305
|
yield this.refreshExpiredAuthToken(userContext);
|
|
312
306
|
const method = 'patch';
|
|
313
|
-
const headers = this._authHeaders;
|
|
314
307
|
return this._handleResponse({
|
|
315
308
|
method,
|
|
316
309
|
url,
|
|
317
|
-
headers,
|
|
318
|
-
try: () => this._httpClient[method](url, data, this._addHeaders(
|
|
310
|
+
headers: this._authHeaders,
|
|
311
|
+
try: () => this._httpClient[method](url, data, this._addHeaders(this._authHeaders, config)),
|
|
319
312
|
}, userContext);
|
|
320
313
|
});
|
|
321
314
|
}
|
package/built/index.d.ts
CHANGED
|
@@ -1887,3 +1887,26 @@ export interface FolderLinkPreviewMetadataResponse extends LinkPreviewMetadataRe
|
|
|
1887
1887
|
username: string;
|
|
1888
1888
|
routine_count: number;
|
|
1889
1889
|
}
|
|
1890
|
+
export interface ExerciseHistorySet {
|
|
1891
|
+
weight_kg: number | null;
|
|
1892
|
+
reps: number | null;
|
|
1893
|
+
indicator: SetType;
|
|
1894
|
+
duration_seconds: number | null;
|
|
1895
|
+
distance_meters: number | null;
|
|
1896
|
+
rpe: number | null;
|
|
1897
|
+
custom_metric: number | null;
|
|
1898
|
+
set_index: number;
|
|
1899
|
+
prs: SetPersonalRecordType[];
|
|
1900
|
+
}
|
|
1901
|
+
export interface ExerciseInstructionsStep {
|
|
1902
|
+
index?: number;
|
|
1903
|
+
description: string;
|
|
1904
|
+
}
|
|
1905
|
+
export interface ExerciseHistoryWorkout {
|
|
1906
|
+
id: string;
|
|
1907
|
+
name: string;
|
|
1908
|
+
start_time: number;
|
|
1909
|
+
exercises: {
|
|
1910
|
+
sets: ExerciseHistorySet[];
|
|
1911
|
+
}[];
|
|
1912
|
+
}
|
package/built/notifications.d.ts
CHANGED
|
@@ -141,7 +141,7 @@ export type NotificationMobilePushDataType = NotificationType | 'chat-update' |
|
|
|
141
141
|
* For iOS/Apple see https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app
|
|
142
142
|
* For Android see https://firebase.google.com/docs/cloud-messaging/concept-options#data_messages
|
|
143
143
|
*/
|
|
144
|
-
export type DataOnlyMobilePushDataType = 'coach-data-changed' | 'coach-program-changed' | 'sync-workouts' | 'sync-routines' | 'sync-routine-folders' | 'sync-exercise-templates-and-customizations' | 'sync-account' | 'hevy-pro-status-changed' | 'hevy-pro-subscription-renewed' |
|
|
144
|
+
export type DataOnlyMobilePushDataType = 'coach-data-changed' | 'coach-program-changed' | 'sync-workouts' | 'sync-routines' | 'sync-routine-folders' | 'sync-exercise-templates-and-customizations' | 'sync-account' | 'hevy-pro-status-changed' | 'hevy-pro-subscription-renewed' | never;
|
|
145
145
|
export interface CoachDataChangedMobilePushData extends BaseMobilePushData {
|
|
146
146
|
type: 'coach-data-changed';
|
|
147
147
|
additionalHevyData: ClientsCoachData;
|
|
@@ -206,10 +206,4 @@ export interface GracePeriodResolveMobilePushData extends BaseMobilePushData {
|
|
|
206
206
|
type: 'grace-period-resolve';
|
|
207
207
|
deeplink: string;
|
|
208
208
|
}
|
|
209
|
-
export
|
|
210
|
-
type: 'new-notification';
|
|
211
|
-
additionalHevyData: {
|
|
212
|
-
notificationDateISO: string;
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
export type MobilePushData = ChatUpdateMobilePushData | SyncCustomExercisesAndCoachCustomizationsMobilePushData | SyncWorkoutsMobilePushData | SyncRoutineFoldersMobilePushData | SyncRoutinesMobilePushData | SyncAccountMobilePushData | ProStatusChangedPushMobilePushData | HevyProSubscriptionRenewedMobilePushData | CoachProgramChangedMobilePushData | CoachDataChangedMobilePushData | ContactOnHevyMobilePushData | CoachClientInviteMobilePushData | AcceptFollowRequestMobilePushData | FollowRequestMobilePushData | FollowMobilePushData | WorkoutLikeMobilePushData | WorkoutCommentLikeMobilePushData | WorkoutCommentMentionMobilePushData | WorkoutCommentDiscussionMobilePushData | WorkoutCommentReplyMobilePushData | WorkoutCommentMobilePushData | WorkoutMentionMobilePushData | WorkoutCompleteMobilePushData | CoachProgramFinishesNextWeekMobilePushData | CoachProgramStartsTodayMobilePushData | CoachLoggedYourWorkoutMobilePushData | CoachLoggedYourMeasurementsMobilePushData | MonthlyReportMobilePushData | GracePeriodEnterMobilePushData | GracePeriodResolveMobilePushData | NewNotificationMobilePushData;
|
|
209
|
+
export type MobilePushData = ChatUpdateMobilePushData | SyncCustomExercisesAndCoachCustomizationsMobilePushData | SyncWorkoutsMobilePushData | SyncRoutineFoldersMobilePushData | SyncRoutinesMobilePushData | SyncAccountMobilePushData | ProStatusChangedPushMobilePushData | HevyProSubscriptionRenewedMobilePushData | CoachProgramChangedMobilePushData | CoachDataChangedMobilePushData | ContactOnHevyMobilePushData | CoachClientInviteMobilePushData | AcceptFollowRequestMobilePushData | FollowRequestMobilePushData | FollowMobilePushData | WorkoutLikeMobilePushData | WorkoutCommentLikeMobilePushData | WorkoutCommentMentionMobilePushData | WorkoutCommentDiscussionMobilePushData | WorkoutCommentReplyMobilePushData | WorkoutCommentMobilePushData | WorkoutMentionMobilePushData | WorkoutCompleteMobilePushData | CoachProgramFinishesNextWeekMobilePushData | CoachProgramStartsTodayMobilePushData | CoachLoggedYourWorkoutMobilePushData | CoachLoggedYourMeasurementsMobilePushData | MonthlyReportMobilePushData | GracePeriodEnterMobilePushData | GracePeriodResolveMobilePushData;
|
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;
|