UNPKG

trainingpeaks-sdk

Version:
185 lines (184 loc) 8.72 kB
"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(), });