UNPKG

trainingpeaks-sdk

Version:
71 lines (70 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TrainingPeaksAthleteSchema = exports.WorkoutSchema = exports.AuthTokenSchema = exports.UserSchema = void 0; const zod_1 = require("zod"); const workout_structure_schema_1 = require("./workout-structure.schema.js"); exports.UserSchema = zod_1.z.object({ id: zod_1.z.string().min(1), name: zod_1.z.string().trim().min(1).max(100), username: zod_1.z.string().trim().min(1).max(100), avatar: zod_1.z .string() .url() .or(zod_1.z.literal('')) .transform((val) => (val === '' ? undefined : val)) .optional(), preferences: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(), }); exports.AuthTokenSchema = zod_1.z.object({ accessToken: zod_1.z.string().min(1), tokenType: zod_1.z.string().min(1), expiresIn: zod_1.z.number().nonnegative().finite(), expires: zod_1.z.date(), refreshToken: zod_1.z.string().min(1).optional(), scope: zod_1.z.string().min(1).optional(), }); exports.WorkoutSchema = zod_1.z.object({ id: zod_1.z.string().min(1), name: zod_1.z.string().min(1).max(200), description: zod_1.z.string().max(1000), date: zod_1.z.date(), duration: zod_1.z.number().nonnegative().finite(), distance: zod_1.z.number().nonnegative().finite().optional(), activityType: zod_1.z.string().min(1).max(50).optional(), tags: zod_1.z.array(zod_1.z.string().min(1).max(50)).optional(), fileContent: zod_1.z.string().optional(), fileName: zod_1.z.string().min(1).max(255).optional(), createdAt: zod_1.z.date().optional(), updatedAt: zod_1.z.date().optional(), structure: workout_structure_schema_1.WorkoutStructureSchema.optional(), }); exports.TrainingPeaksAthleteSchema = zod_1.z.object({ athleteId: zod_1.z.number().positive(), firstName: zod_1.z.string().min(1).max(100), lastName: zod_1.z.string().min(1).max(100), email: zod_1.z.string().email(), phone: zod_1.z.string().nullable().optional(), cellPhone: zod_1.z.string().nullable().optional(), age: zod_1.z.number().nonnegative().optional(), athleteType: zod_1.z.number(), userType: zod_1.z.number(), lastPlannedWorkout: zod_1.z.string().nullable().optional(), settings: zod_1.z.unknown().optional(), personPhotoUrl: zod_1.z .string() .url() .or(zod_1.z.literal('')) .nullable() .optional() .transform((val) => (val === '' ? null : val)), coachedBy: zod_1.z.number().nullable().optional(), userName: zod_1.z.string().min(1), lastUpgradeOn: zod_1.z.string().nullable().optional(), downgradeAllowed: zod_1.z.boolean().default(false), expireOn: zod_1.z.string(), premiumTrial: zod_1.z.boolean().default(false), premiumTrialDaysRemaining: zod_1.z.number().nonnegative().default(0), downgradeAllowedOn: zod_1.z.string().optional(), workoutIndexState: zod_1.z.number().default(0), prCalcState: zod_1.z.number().default(0), });