trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
185 lines (184 loc) • 8.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TrainingPeaksSettingsSchema = exports.TrainingPeaksPromptSettingsSchema = exports.TrainingPeaksPromptDatesSchema = exports.TrainingPeaksPromptChoicesSchema = exports.TrainingPeaksPromptPreferencesSchema = exports.TrainingPeaksDashboardSettingsSchema = exports.TrainingPeaksDashboardPodSchema = exports.TrainingPeaksDateOptionsSchema = exports.TrainingPeaksMetricSchema = exports.TrainingPeaksWorkoutSettingsSchema = exports.TrainingPeaksCalendarSettingsSchema = exports.TrainingPeaksAccountSettingsSchema = exports.WorkoutMetadataSchema = exports.UserPreferencesSchema = exports.WorkoutDataSchema = exports.WorkoutFileDataSchema = exports.WorkoutFileSchema = exports.CredentialsSchema = void 0;
const zod_1 = require("zod");
exports.CredentialsSchema = zod_1.z.object({
username: zod_1.z.string().min(1).max(100),
password: zod_1.z.string().min(1),
});
exports.WorkoutFileSchema = zod_1.z.object({
fileName: zod_1.z.string().min(1).max(255),
content: zod_1.z.string().min(1),
mimeType: zod_1.z.string().min(1).max(100),
});
exports.WorkoutFileDataSchema = zod_1.z.object({
filename: zod_1.z.string().min(1).max(255),
content: zod_1.z.union([
zod_1.z.string(),
zod_1.z.instanceof(Uint8Array),
zod_1.z.instanceof(Buffer),
]),
mimeType: zod_1.z.string().min(1).max(100),
});
exports.WorkoutDataSchema = zod_1.z.object({
name: zod_1.z.string().min(1).max(200),
description: zod_1.z.string().optional(),
date: zod_1.z.string().optional(),
duration: zod_1.z.number().nonnegative().finite().optional(),
distance: zod_1.z.number().nonnegative().finite().optional(),
type: zod_1.z.enum(['BIKE', 'RUN', 'SWIM', 'OTHER']).optional(),
fileData: exports.WorkoutFileDataSchema.optional(),
});
exports.UserPreferencesSchema = zod_1.z.object({
timezone: zod_1.z.string().min(1),
units: zod_1.z.enum(['metric', 'imperial']),
language: zod_1.z.enum(['en', 'es', 'fr', 'de']),
theme: zod_1.z.enum(['light', 'dark', 'auto']),
notifications: zod_1.z.boolean(),
});
exports.WorkoutMetadataSchema = zod_1.z.object({
tags: zod_1.z.array(zod_1.z.string().min(1)).optional(),
notes: zod_1.z.string().optional(),
location: zod_1.z.string().optional(),
weather: zod_1.z.enum(['sunny', 'cloudy', 'rainy', 'snowy']).optional(),
temperature: zod_1.z.number().optional(),
});
exports.TrainingPeaksAccountSettingsSchema = zod_1.z.object({
accountSettingsId: zod_1.z.number(),
userType: zod_1.z.number(),
isAthlete: zod_1.z.boolean(),
headerImageUrl: zod_1.z.string(),
headerLink: zod_1.z.string(),
helpUrl: zod_1.z.string(),
logonFailedUrl: zod_1.z.string(),
logOffUrl: zod_1.z.string(),
displayTrainingPeaksLogo: zod_1.z.boolean(),
coachType: zod_1.z.number(),
isCoached: zod_1.z.boolean(),
isPremium: zod_1.z.boolean(),
accessGroupIds: zod_1.z.array(zod_1.z.number()),
premiumTrial: zod_1.z.boolean(),
lastLogon: zod_1.z.string(),
});
exports.TrainingPeaksCalendarSettingsSchema = zod_1.z.object({
compactView: zod_1.z.boolean(),
showAvailability: zod_1.z.boolean(),
showNotes: zod_1.z.boolean(),
showWorkouts: zod_1.z.boolean(),
showStrengthWorkouts: zod_1.z.boolean(),
showNutrition: zod_1.z.boolean(),
showMetrics: zod_1.z.boolean(),
showSummary: zod_1.z.boolean(),
showFitnessFormFatigue: zod_1.z.boolean(),
showComplianceColoring: zod_1.z.boolean(),
showWeather: zod_1.z.boolean(),
orderComplianceBy: zod_1.z.array(zod_1.z.string()),
focusEventId: zod_1.z.number().nullable(),
workoutLabelLayout: zod_1.z.array(zod_1.z.number()),
weekSummaryAtpLayout: zod_1.z.array(zod_1.z.number()),
showPayments: zod_1.z.boolean(),
});
exports.TrainingPeaksWorkoutSettingsSchema = zod_1.z.object({
layout: zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.number())),
});
exports.TrainingPeaksMetricSchema = zod_1.z.object({
type: zod_1.z.number(),
});
exports.TrainingPeaksDateOptionsSchema = zod_1.z.object({
quickDateSelectOption: zod_1.z.number().nullable(),
startDate: zod_1.z.string().nullable(),
endDate: zod_1.z.string().nullable(),
});
exports.TrainingPeaksDashboardPodSchema = zod_1.z.object({
workoutTypeIds: zod_1.z.array(zod_1.z.string()).optional(),
quickDateSelectOption: zod_1.z.number().optional(),
showTSSPerDay: zod_1.z.boolean().optional(),
showIntensityFactorPerDay: zod_1.z.boolean().optional(),
showTSBFill: zod_1.z.boolean().optional(),
atlConstant: zod_1.z.number().optional(),
atlStartValue: zod_1.z.number().optional(),
showSecondAtlSeries: zod_1.z.boolean().optional(),
atlConstant2: zod_1.z.number().optional(),
atlStartValue2: zod_1.z.number().optional(),
ctlConstant: zod_1.z.number().optional(),
ctlStartValue: zod_1.z.number().optional(),
index: zod_1.z.number(),
chartType: zod_1.z.number(),
title: zod_1.z.string().nullable(),
dateOptions: exports.TrainingPeaksDateOptionsSchema,
durationUnits: zod_1.z.number().optional(),
summaryType: zod_1.z.number().optional(),
dateGrouping: zod_1.z.number().optional(),
caloriesType: zod_1.z.number().optional(),
includeGoalCalories: zod_1.z.boolean().optional(),
peakType: zod_1.z.number().optional(),
useComparison: zod_1.z.boolean().optional(),
displayState: zod_1.z.number().optional(),
comparisonDateOptions: exports.TrainingPeaksDateOptionsSchema.optional(),
tags: zod_1.z.unknown().optional(),
showPlanned: zod_1.z.boolean().optional(),
hideAverage: zod_1.z.boolean().optional(),
units: zod_1.z.number().nullable().optional(),
showMarkers: zod_1.z.boolean().optional(),
dataFields: zod_1.z.array(zod_1.z.number()).optional(),
powerProfileGrouping: zod_1.z.number().optional(),
displayCategoryLabels: zod_1.z.boolean().optional(),
displayCaloriesConsumed: zod_1.z.boolean().optional(),
displayCaloriesExpended: zod_1.z.boolean().optional(),
displayBy: zod_1.z.number().optional(),
});
exports.TrainingPeaksDashboardSettingsSchema = zod_1.z.object({
pods: zod_1.z.array(exports.TrainingPeaksDashboardPodSchema),
dateOptions: exports.TrainingPeaksDateOptionsSchema,
});
exports.TrainingPeaksPromptPreferencesSchema = zod_1.z.object({
showPairUnpairModal: zod_1.z.boolean(),
showWelcome: zod_1.z.boolean(),
showGoalsAssistanceBanner: zod_1.z.boolean(),
showUnpairConfirmationModal: zod_1.z.boolean(),
'showWhatsNew:CALENDAR_NOTES_ATHLETE': zod_1.z.boolean(),
showQuickViewTips: zod_1.z.boolean(),
contextMenuTip: zod_1.z.boolean(),
showEnterEventModal: zod_1.z.boolean(),
showExpandoTips: zod_1.z.boolean(),
searchChalkboard: zod_1.z.boolean(),
showComplete: zod_1.z.boolean(),
recuringNewChip: zod_1.z.boolean(),
weatherNewChip: zod_1.z.boolean(),
garminMaxStepsWarning: zod_1.z.boolean(),
});
exports.TrainingPeaksPromptChoicesSchema = zod_1.z.object({
searchChalkboard: zod_1.z.string(),
showEnterEventModal: zod_1.z.string(),
showQuickViewTips: zod_1.z.string(),
showExpandoTips: zod_1.z.string(),
showComplete: zod_1.z.string(),
showLandingSelection: zod_1.z.string(),
});
exports.TrainingPeaksPromptDatesSchema = zod_1.z.object({
searchChalkboard: zod_1.z.string(),
showEnterEventModal: zod_1.z.string(),
showQuickViewTips: zod_1.z.string(),
showExpandoTips: zod_1.z.string(),
showComplete: zod_1.z.string(),
showGoalsAssistanceBanner: zod_1.z.string(),
autoDismissNotifications: zod_1.z.string(),
});
exports.TrainingPeaksPromptSettingsSchema = zod_1.z.object({
promptPreferences: exports.TrainingPeaksPromptPreferencesSchema,
promptChoices: exports.TrainingPeaksPromptChoicesSchema,
promptDates: exports.TrainingPeaksPromptDatesSchema,
});
exports.TrainingPeaksSettingsSchema = zod_1.z.object({
account: exports.TrainingPeaksAccountSettingsSchema,
calendar: exports.TrainingPeaksCalendarSettingsSchema,
workout: exports.TrainingPeaksWorkoutSettingsSchema,
metrics: zod_1.z.array(exports.TrainingPeaksMetricSchema),
dashboard: exports.TrainingPeaksDashboardSettingsSchema,
prompt: exports.TrainingPeaksPromptSettingsSchema,
general: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
experiments: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
affiliate: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
appleWatch: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
privacy: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
});