trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
54 lines (53 loc) • 2.47 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkoutFiltersSchema = exports.UpdateWorkoutRequestSchema = exports.CreateWorkoutRequestSchema = exports.WorkoutStatsSchema = exports.WorkoutsListResponseSchema = exports.WorkoutResponseSchema = void 0;
const zod_1 = require("zod");
exports.WorkoutResponseSchema = zod_1.z.object({
workout: zod_1.z.object({
id: zod_1.z.string().min(1),
name: zod_1.z.string().min(1).max(200),
date: zod_1.z.string(),
duration: zod_1.z.number().nonnegative().finite(),
type: zod_1.z.string().min(1),
description: zod_1.z.string().optional(),
}),
});
exports.WorkoutsListResponseSchema = zod_1.z.object({
total: zod_1.z.number().nonnegative().int(),
workouts: zod_1.z.array(exports.WorkoutResponseSchema),
});
exports.WorkoutStatsSchema = zod_1.z.object({
totalWorkouts: zod_1.z.number().nonnegative().int(),
totalDistance: zod_1.z.number().nonnegative().finite(),
totalDuration: zod_1.z.number().nonnegative().finite(),
totalCalories: zod_1.z.number().nonnegative().finite(),
averageDistance: zod_1.z.number().nonnegative().finite(),
averageDuration: zod_1.z.number().nonnegative().finite(),
favoriteType: zod_1.z.string().min(1),
});
exports.CreateWorkoutRequestSchema = zod_1.z.object({
name: zod_1.z.string().min(1).max(200),
date: zod_1.z.string(),
duration: zod_1.z.number().nonnegative().finite(),
type: zod_1.z.string().min(1),
description: zod_1.z.string().optional(),
distance: zod_1.z.number().nonnegative().finite().optional(),
calories: zod_1.z.number().nonnegative().finite().optional(),
});
exports.UpdateWorkoutRequestSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
name: zod_1.z.string().min(1).max(200).optional(),
date: zod_1.z.string().optional(),
duration: zod_1.z.number().nonnegative().finite().optional(),
type: zod_1.z.string().min(1).optional(),
description: zod_1.z.string().optional(),
distance: zod_1.z.number().nonnegative().finite().optional(),
calories: zod_1.z.number().nonnegative().finite().optional(),
});
exports.WorkoutFiltersSchema = zod_1.z.object({
dateFrom: zod_1.z.string().optional(),
dateTo: zod_1.z.string().optional(),
type: zod_1.z.string().min(1).optional(),
limit: zod_1.z.number().positive().int().optional(),
offset: zod_1.z.number().nonnegative().int().optional(),
});