{"version":3,"file":"validator.cjs","sources":["../../../src/utils/validator.js"],"sourcesContent":["import { z } from 'zod';\r\nimport { PRESET_ANIMATIONS } from '../animations/preset-animations.js';\r\nimport { easingMap } from './easings.js';\r\nimport { AllTransitions } from './transition-renderer.js';\r\n\r\n/**\r\n * 验证数值范围\r\n */\r\nexport function validateRange(value, min, max, name = 'value') {\r\n  if (typeof value !== 'number' || isNaN(value)) {\r\n    throw new Error(`${name} must be a number`);\r\n  }\r\n  if (value < min || value > max) {\r\n    throw new Error(`${name} must be between ${min} and ${max}`);\r\n  }\r\n  return value;\r\n}\r\n\r\n/**\r\n * 验证时间值（秒）\r\n */\r\nexport function validateTime(value, name = 'time') {\r\n  if (typeof value !== 'number' || isNaN(value) || value < 0) {\r\n    throw new Error(`${name} must be a non-negative number`);\r\n  }\r\n  return value;\r\n}\r\n\r\n/**\r\n * 验证颜色值\r\n */\r\nexport function validateColor(value, name = 'color') {\r\n  if (typeof value !== 'string') {\r\n    throw new Error(`${name} must be a string`);\r\n  }\r\n  // 简单的颜色验证（支持 hex, rgb, rgba, 颜色名）\r\n  const colorRegex = /^(#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})|rgb\\(|rgba\\(|[a-zA-Z]+)$/;\r\n  if (!colorRegex.test(value)) {\r\n    throw new Error(`${name} must be a valid color value`);\r\n  }\r\n  return value;\r\n}\r\n\r\n/**\r\n * 验证坐标点\r\n */\r\nexport function validatePoint(point, name = 'point') {\r\n  if (!Array.isArray(point) || point.length !== 2) {\r\n    throw new Error(`${name} must be an array of [x, y]`);\r\n  }\r\n  if (typeof point[0] !== 'number' || typeof point[1] !== 'number') {\r\n    throw new Error(`${name} coordinates must be numbers`);\r\n  }\r\n  return point;\r\n}\r\n\r\n/**\r\n * 验证尺寸\r\n */\r\nexport function validateSize(size, name = 'size') {\r\n  if (!size || typeof size.width !== 'number' || typeof size.height !== 'number') {\r\n    throw new Error(`${name} must be an object with width and height properties`);\r\n  }\r\n  if (size.width <= 0 || size.height <= 0) {\r\n    throw new Error(`${name} width and height must be positive numbers`);\r\n  }\r\n  return size;\r\n}\r\n\r\n/**\r\n * 验证元素配置\r\n */\r\nconst Unit = z.union([z.number(), z.string()]).describe('数值或单位字符串，支持 px、rpx、vw、vh、%');\r\nconst Color = z.string().describe('CSS 颜色值，如 #fff、rgba(...) 或颜色名');\r\n\r\nexport const ElementConfigSchema = z.object({\r\n  x: Unit.optional().describe('位置 X'),\r\n  y: Unit.optional().describe('位置 Y'),\r\n  width: Unit.optional().describe('元素宽度'),\r\n  height: Unit.optional().describe('元素高度'),\r\n  opacity: z.number().min(0).max(1).optional().describe('透明度 0–1'),\r\n  rotation: Unit.optional().describe('旋转角度或单位'),\r\n  scaleX: Unit.optional().describe('水平缩放'),\r\n  scaleY: Unit.optional().describe('垂直缩放'),\r\n  anchor: z.array(z.number()).length(2).optional().describe('锚点 [0–1, 0–1]'),\r\n}).describe('通用元素配置');\r\n\r\n/**\r\n * 验证动画配置\r\n */\r\nconst EasingNameSchema = z.enum(Object.keys(easingMap)).describe('缓动函数名称，来自 easings.js');\r\nconst PresetNameSchema = z.enum(Object.keys(PRESET_ANIMATIONS)).describe('预设动画名称，来自 preset-animations.js');\r\n\r\nconst AnimationOverridePresetSchema = z.object({\r\n  type: PresetNameSchema.describe('预设动画类型'),\r\n  duration: z.number().positive().optional().describe('持续时间（秒）'),\r\n  delay: z.number().min(0).optional().describe('延迟（秒）'),\r\n  easing: z.union([EasingNameSchema, z.string()]).optional().describe('缓动函数'),\r\n  startTime: z.number().min(0).optional().describe('动画开始时间（相对元素）'),\r\n}).describe('以预设为类型的动画，允许覆盖时长/延迟/easing');\r\n\r\nconst TransformStateSchema = z.object({\r\n  x: Unit.optional().describe('位置 X'),\r\n  y: Unit.optional().describe('位置 Y'),\r\n  opacity: z.number().min(0).max(1).optional().describe('透明度 0–1'),\r\n  rotation: Unit.optional().describe('旋转角度或单位'),\r\n  scaleX: Unit.optional().describe('水平缩放'),\r\n  scaleY: Unit.optional().describe('垂直缩放'),\r\n}).describe('变换状态');\r\n\r\nconst AnimationTransformSchema = z.object({\r\n  type: z.literal('transform').describe('动画类型：transform'),\r\n  from: TransformStateSchema.optional().describe('起始状态'),\r\n  to: TransformStateSchema.optional().describe('结束状态'),\r\n  duration: z.number().positive().describe('持续时间（秒）'),\r\n  delay: z.number().min(0).optional().describe('延迟（秒）'),\r\n  easing: z.union([EasingNameSchema, z.string()]).optional().describe('缓动函数'),\r\n  startTime: z.number().min(0).optional().describe('动画开始时间（相对元素）'),\r\n}).describe('基础变换动画');\r\n\r\nconst KeyframePointSchema = z.object({\r\n  time: z.number().min(0).describe('关键帧时间（0–1 或秒）'),\r\n  x: Unit.optional().describe('位置 X'),\r\n  y: Unit.optional().describe('位置 Y'),\r\n  opacity: z.number().min(0).max(1).optional().describe('透明度 0–1'),\r\n  rotation: Unit.optional().describe('旋转角度或单位'),\r\n  scaleX: Unit.optional().describe('水平缩放'),\r\n  scaleY: Unit.optional().describe('垂直缩放'),\r\n  translateX: Unit.optional().describe('水平位移'),\r\n  translateY: Unit.optional().describe('垂直位移'),\r\n}).describe('关键帧点');\r\n\r\nconst AnimationKeyframeSchema = z.object({\r\n  type: z.literal('keyframe').describe('动画类型：keyframe'),\r\n  keyframes: z.array(KeyframePointSchema).min(1).describe('关键帧数组'),\r\n  duration: z.number().positive().describe('持续时间（秒）'),\r\n  delay: z.number().min(0).optional().describe('延迟（秒）'),\r\n  easing: z.union([EasingNameSchema, z.string()]).optional().describe('缓动函数'),\r\n  startTime: z.number().min(0).optional().describe('动画开始时间（相对元素）'),\r\n}).describe('关键帧动画');\r\n\r\n \r\n\r\nexport const AnimationConfigSchema = z.union([\r\n  AnimationOverridePresetSchema,\r\n  AnimationTransformSchema,\r\n  AnimationKeyframeSchema,\r\n]).describe('动画配置联合：preset/transform/keyframe');\r\n\r\nexport const AnimationInputSchema = z.union([\r\n  PresetNameSchema,\r\n  AnimationConfigSchema,\r\n]).describe('动画输入：预设名或动画对象');\r\n\r\nconst BaseTimingSchema = z.object({\r\n  startTime: z.number().min(0).optional(),\r\n  endTime: z.number().optional(),\r\n  duration: z.number().positive().optional(),\r\n  zIndex: z.number().optional(),\r\n  visible: z.boolean().optional(),\r\n  animations: z.array(AnimationInputSchema).optional(),\r\n}).describe('通用时间与显示控制');\r\n\r\nconst ElementBaseSchema = ElementConfigSchema.merge(BaseTimingSchema).extend({\r\n  type: z.string().describe('元素类型'),\r\n}).describe('元素基础配置');\r\n\r\nexport const TextElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('text'),\r\n  text: z.string().describe('文本内容'),\r\n  fontSize: Unit.optional().describe('字号'),\r\n  fontFamily: z.string().optional().describe('字体'),\r\n  fontWeight: z.union([z.string(), z.number()]).optional(),\r\n  fontStyle: z.string().optional(),\r\n  color: Color.optional().describe('文字颜色'),\r\n  textAlign: z.enum(['left', 'center', 'right']).optional().describe('水平对齐'),\r\n  textBaseline: z.enum(['top', 'middle', 'bottom', 'alphabetic']).optional().describe('垂直对齐'),\r\n  lineHeight: z.union([z.number(), z.string()]).optional(),\r\n  stroke: z.boolean().optional(),\r\n  strokeColor: Color.optional(),\r\n  strokeWidth: Unit.optional(),\r\n  split: z.union([z.literal('letter'), z.literal('word'), z.literal('line')]).nullable().optional().describe('文本拆分粒度'),\r\n  splitDelay: z.number().optional().describe('拆分延迟'),\r\n  splitDuration: z.number().optional().describe('拆分片段持续时间'),\r\n}).describe('文本元素');\r\n\r\nexport const ImageElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('image'),\r\n  src: z.string().describe('图片路径'),\r\n  fit: z.enum(['contain', 'cover', 'fill', 'scale-down', 'none']).optional().describe('缩放模式'),\r\n  preserveAspectRatio: z.boolean().optional().describe('保持纵横比'),\r\n  blendMode: z.string().optional().describe('混合模式'),\r\n  borderRadius: Unit.optional(),\r\n  borderWidth: Unit.optional(),\r\n  borderColor: Color.optional(),\r\n  shadowBlur: z.number().min(0).optional().describe('阴影模糊半径'),\r\n  shadowColor: Color.optional().describe('阴影颜色'),\r\n  shadowOffsetX: z.number().optional().describe('阴影 X 偏移'),\r\n  shadowOffsetY: z.number().optional().describe('阴影 Y 偏移'),\r\n  filter: z.union([z.string(), z.null()]).optional().describe('滤镜'),\r\n  flipX: z.boolean().optional(),\r\n  flipY: z.boolean().optional(),\r\n  brightness: z.number().min(0).max(2).optional().describe('亮度 0–2'),\r\n  contrast: z.number().min(0).max(2).optional().describe('对比度 0–2'),\r\n  saturation: z.number().min(0).max(2).optional().describe('饱和度 0–2'),\r\n  hue: z.number().min(0).max(360).optional().describe('色相 0–360'),\r\n  grayscale: z.number().min(0).max(1).optional().describe('灰度 0–1'),\r\n  glassEffect: z.boolean().optional().describe('毛玻璃效果'),\r\n  glassBlur: z.number().min(0).optional().describe('毛玻璃模糊半径'),\r\n  glassOpacity: z.number().min(0).max(1).optional().describe('毛玻璃透明度 0–1'),\r\n  glassTint: Color.optional().describe('毛玻璃色调'),\r\n  glassBorder: z.boolean().optional().describe('毛玻璃边框'),\r\n  glassBorderColor: Color.optional().describe('毛玻璃边框颜色'),\r\n  glassBorderWidth: z.number().min(0).optional().describe('毛玻璃边框宽度'),\r\n}).describe('图片元素');\r\n\r\nexport const VideoElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('video'),\r\n  src: z.string().optional().describe('视频源 URL'),\r\n  videoPath: z.string().optional().describe('视频文件路径'),\r\n  fit: z.enum(['contain', 'cover', 'fill', 'scale-down', 'none']).optional().describe('缩放模式'),\r\n  blendMode: z.string().optional().describe('混合模式'),\r\n  borderRadius: Unit.optional(),\r\n  borderWidth: Unit.optional(),\r\n  borderColor: Color.optional(),\r\n  shadowBlur: z.number().min(0).optional().describe('阴影模糊半径'),\r\n  shadowColor: Color.optional().describe('阴影颜色'),\r\n  shadowOffsetX: z.number().optional().describe('阴影 X 偏移'),\r\n  shadowOffsetY: z.number().optional().describe('阴影 Y 偏移'),\r\n  filter: z.union([z.string(), z.null()]).optional().describe('滤镜'),\r\n  flipX: z.boolean().optional(),\r\n  flipY: z.boolean().optional(),\r\n  brightness: z.number().min(0).max(2).optional().describe('亮度 0–2'),\r\n  contrast: z.number().min(0).max(2).optional().describe('对比度 0–2'),\r\n  saturation: z.number().min(0).max(2).optional().describe('饱和度 0–2'),\r\n  hue: z.number().min(0).max(360).optional().describe('色相 0–360'),\r\n  grayscale: z.number().min(0).max(1).optional().describe('灰度 0–1'),\r\n  glassEffect: z.boolean().optional().describe('毛玻璃效果'),\r\n  glassBlur: z.number().min(0).optional().describe('毛玻璃模糊半径'),\r\n  glassOpacity: z.number().min(0).max(1).optional().describe('毛玻璃透明度 0–1'),\r\n  glassTint: Color.optional().describe('毛玻璃色调'),\r\n  glassBorder: z.boolean().optional().describe('毛玻璃边框'),\r\n  glassBorderColor: Color.optional().describe('毛玻璃边框颜色'),\r\n  glassBorderWidth: z.number().min(0).optional().describe('毛玻璃边框宽度'),\r\n  cutFrom: z.number().min(0).optional().describe('裁剪起始时间（秒）'),\r\n  cutTo: z.number().optional().describe('裁剪结束时间（秒）'),\r\n  speed: z.number().positive().optional().describe('播放速度倍数'),\r\n  loop: z.boolean().optional().describe('循环播放'),\r\n  mute: z.boolean().optional().describe('静音'),\r\n  volume: z.number().min(0).max(1).optional().describe('音量 0–1'),\r\n}).describe('视频元素');\r\n\r\nexport const RectElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('rect'),\r\n  bgcolor: Color.optional(),\r\n  borderRadius: Unit.optional(),\r\n  borderWidth: Unit.optional(),\r\n  borderColor: Color.optional(),\r\n}).describe('矩形元素');\r\n\r\nexport const CircleElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('circle'),\r\n  radius: Unit.optional(),\r\n  bgcolor: Color.optional(),\r\n  borderWidth: Unit.optional(),\r\n  borderColor: Color.optional(),\r\n}).describe('圆形元素');\r\n\r\nexport const PathElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('path'),\r\n  points: z.array(z.array(Unit)).optional(),\r\n  closed: z.boolean().optional(),\r\n  fillColor: Color.optional(),\r\n  strokeColor: Color.optional(),\r\n  strokeWidth: Unit.optional(),\r\n  dashArray: z.array(Unit).optional(),\r\n  dashOffset: Unit.optional(),\r\n}).describe('路径元素');\r\n\r\nexport const SVGElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('svg'),\r\n  src: z.string().optional().describe('SVG 文件路径'),\r\n  svgString: z.string().optional().describe('SVG 字符串'),\r\n  fit: z.enum(['contain', 'cover', 'fill', 'scale-down', 'none']).optional().describe('缩放模式'),\r\n  preserveAspectRatio: z.boolean().optional().describe('保持纵横比'),\r\n  enableSVGAnimations: z.boolean().optional().describe('启用原生 SVG 动画'),\r\n}).describe('SVG 元素');\r\n\r\nexport const AudioElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('audio'),\r\n  src: z.string().optional().describe('音频源 URL'),\r\n  audioPath: z.string().optional().describe('音频文件路径'),\r\n  cutFrom: z.number().min(0).optional().describe('裁剪起始时间（秒）'),\r\n  cutTo: z.number().optional().describe('裁剪结束时间（秒）'),\r\n  volume: z.number().min(0).max(1).optional().describe('音量 0–1'),\r\n  loop: z.boolean().optional().describe('循环播放'),\r\n}).describe('音频元素');\r\n\r\nexport const SubtitleElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('subtitle'),\r\n  text: z.string().describe('字幕内容'),\r\n  fontSize: Unit.optional().describe('字号'),\r\n  fontFamily: z.string().optional().describe('字体'),\r\n  color: Color.optional().describe('文字颜色'),\r\n  textAlign: z.enum(['left', 'center', 'right']).optional().describe('水平对齐'),\r\n  split: z.union([z.literal('letter'), z.literal('word'), z.literal('line')]).nullable().optional().describe('文本拆分粒度'),\r\n  splitDelay: z.number().optional().describe('拆分延迟'),\r\n  splitDuration: z.number().optional().describe('拆分片段持续时间'),\r\n}).describe('字幕元素');\r\n\r\nexport const OscilloscopeElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('oscilloscope'),\r\n  src: z.string().optional().describe('音频源路径或 URL'),\r\n  waveColor: Color.optional().describe('波形颜色'),\r\n  backgroundColor: Color.optional().describe('背景颜色'),\r\n  lineWidth: Unit.optional().describe('波形线宽'),\r\n  smoothing: z.number().optional().describe('平滑系数'),\r\n  mirror: z.boolean().optional().describe('镜像显示'),\r\n  style: z.string().optional().describe('样式类型'),\r\n  sensitivity: z.number().optional().describe('灵敏度'),\r\n  windowSize: z.number().optional().describe('窗口大小'),\r\n  scrollSpeed: z.number().optional().describe('滚动速度'),\r\n  cutFrom: z.number().min(0).optional().describe('裁剪起始时间'),\r\n  cutTo: z.number().optional().describe('裁剪结束时间'),\r\n}).describe('示波器元素');\r\n\r\nexport const EChartsElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('echarts'),\r\n  option: z.record(z.any()).optional().describe('ECharts 配置对象'),\r\n  renderer: z.enum(['canvas', 'svg']).optional().describe('渲染器类型'),\r\n  theme: z.union([z.string(), z.null()]).optional().describe('主题名称或 null'),\r\n  bgcolor: Color.optional().describe('背景颜色'),\r\n}).describe('ECharts 元素');\r\n\r\nexport const CodeElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('code'),\r\n  code: z.string().optional().describe('代码字符串'),\r\n  language: z.string().optional().describe('代码语言'),\r\n  theme: z.enum(['dark', 'light', 'monokai', 'dracula']).optional().describe('主题'),\r\n  showLineNumbers: z.boolean().optional().describe('显示行号'),\r\n  padding: Unit.optional().describe('内容内边距'),\r\n  lineHeight: z.union([z.number(), z.string()]).optional().describe('行高'),\r\n  fontSize: Unit.optional().describe('字号'),\r\n  showBorder: z.boolean().optional().describe('显示边框'),\r\n  borderRadius: Unit.optional().describe('圆角'),\r\n  borderWidth: Unit.optional().describe('边框宽度'),\r\n  bgcolor: Color.optional().describe('背景颜色'),\r\n  borderColor: Color.optional().describe('边框颜色'),\r\n  split: z.union([z.literal('letter'), z.literal('word'), z.literal('line')]).nullable().optional().describe('文本拆分粒度'),\r\n  splitDelay: z.number().optional().describe('拆分延迟'),\r\n  splitDuration: z.number().optional().describe('拆分片段持续时间'),\r\n  cursor: z.boolean().optional().describe('显示光标'),\r\n  cursorWidth: Unit.optional().describe('光标宽度'),\r\n  cursorColor: Color.optional().describe('光标颜色'),\r\n  cursorBlinkPeriod: z.number().optional().describe('光标闪烁周期'),\r\n}).describe('代码元素');\r\n\r\nexport const SpriteElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('sprite'),\r\n  spriteType: z.enum(['Sprite', 'Rect', 'Circle', 'Label']).optional().describe('Sprite 类型'),\r\n  spriteConfig: z.record(z.any()).optional().describe('Sprite 配置对象'),\r\n  frames: z.array(z.string()).optional().describe('序列帧图片路径数组'),\r\n  frameRate: z.number().positive().optional().describe('帧率（帧/秒）'),\r\n  loop: z.boolean().optional().describe('是否循环播放'),\r\n  autoplay: z.boolean().optional().describe('是否自动播放'),\r\n  playMode: z.enum(['forward', 'reverse', 'pingpong']).optional().describe('播放模式'),\r\n  fit: z.enum(['contain', 'cover', 'fill', 'scale-down', 'none']).optional().describe('缩放模式'),\r\n  preserveAspectRatio: z.boolean().optional().describe('保持纵横比'),\r\n  src: z.string().optional().describe('精灵图图片路径'),\r\n  columns: z.number().positive().optional().describe('图集中列数（每行帧数）'),\r\n  rows: z.number().positive().optional().describe('图集中行数'),\r\n  frameWidth: z.number().positive().optional().describe('单帧宽度（像素）'),\r\n  frameHeight: z.number().positive().optional().describe('单帧高度（像素）'),\r\n  frameCount: z.number().positive().optional().describe('总帧数'),\r\n  margin: z.number().min(0).optional().describe('外边距（像素）'),\r\n  spacing: z.number().min(0).optional().describe('帧间距（像素）'),\r\n  startIndex: z.number().min(0).optional().describe('起始帧索引'),\r\n  orientation: z.enum(['row-major', 'column-major']).optional().describe('索引扫描方式'),\r\n}).describe('精灵元素');\r\n\r\nexport const JSONElementSchema = ElementBaseSchema.extend({\r\n  type: z.literal('json'),\r\n  src: z.string().optional().describe('JSON 文件路径'),\r\n  jsonData: z.record(z.any()).optional().describe('JSON 对象'),\r\n  jsonString: z.string().optional().describe('JSON 字符串'),\r\n  fit: z.enum(['contain', 'cover', 'fill', 'scale-down', 'none']).optional().describe('缩放模式'),\r\n  preserveAspectRatio: z.boolean().optional().describe('保持纵横比'),\r\n}).describe('JSON 元素');\r\n\r\nexport const ElementSchema = z.discriminatedUnion('type', [\r\n  TextElementSchema,\r\n  ImageElementSchema,\r\n  VideoElementSchema,\r\n  RectElementSchema,\r\n  CircleElementSchema,\r\n  PathElementSchema,\r\n  SVGElementSchema,\r\n  AudioElementSchema,\r\n  SubtitleElementSchema,\r\n  OscilloscopeElementSchema,\r\n  EChartsElementSchema,\r\n  CodeElementSchema,\r\n  SpriteElementSchema,\r\n  JSONElementSchema,\r\n]).describe('元素联合 Schema，根据 type 选择具体结构');\r\n\r\nexport const SceneConfigSchema = z.object({\r\n  duration: z.number().positive(),\r\n  startTime: z.number().min(0).optional(),\r\n  name: z.string().optional(),\r\n}).describe('场景配置');\r\n\r\nexport const TrackConfigSchema = z.object({\r\n  zIndex: z.number().optional(),\r\n  name: z.string().optional(),\r\n  width: z.number().optional(),\r\n  height: z.number().optional(),\r\n  fps: z.number().optional(),\r\n}).describe('轨道配置');\r\n\r\nexport const VideoBuilderConfigSchema = z.object({\r\n  width: z.number().positive(),\r\n  height: z.number().positive(),\r\n  fps: z.number().positive(),\r\n  backgroundColor: Color.optional(),\r\n}).describe('VideoBuilder 配置');\r\n\r\nexport const PresetAnimationNamesSchema = PresetNameSchema.describe('预设动画名称枚举');\r\nexport const EasingNamesSchema = EasingNameSchema.describe('缓动函数名称枚举');\r\nconst TransitionNameSchema = z.enum(AllTransitions).describe('转场名称，来自 transition-renderer.js AllTransitions');\r\nexport const TransitionNamesSchema = TransitionNameSchema.describe('转场名称枚举');\r\n\r\n"],"names":["z","easingMap","PRESET_ANIMATIONS","AllTransitions"],"mappings":"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"}