json2pptx-schema 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -288,4 +288,4 @@ declare const V1_DEFAULTS: Pick<V1Document, 'schemaVersion' | 'title' | 'width'
288
288
  theme: V1Theme;
289
289
  };
290
290
 
291
- export { DEFAULT_HEIGHT, DEFAULT_SCHEMA_VERSION, DEFAULT_SLIDE_REMARK, DEFAULT_SLIDE_TYPE, DEFAULT_THEME, DEFAULT_THEME_OUTLINE, DEFAULT_THEME_SHADOW, DEFAULT_TITLE, DEFAULT_WIDTH, type PresentationDocument, type PresentationDocumentInput, SchemaValidationError, type SchemaValidationIssue, UnsupportedSchemaVersionError, type V1Document, type V1DocumentInput, type V1Element, type V1ElementInput, type V1Fill, type V1FillInput, type V1Gradient, type V1ImageElement, type V1LineElement, type V1Outline, type V1SchemaVersion, type V1Shadow, type V1ShapeElement, type V1Slide, type V1SlideBackground, type V1SlideInput, type V1TextElement, type V1Theme, type V1ThemeInput, V1_DEFAULTS, V1_SCHEMA_VERSION, migrateDocument, normalizeDocument, parseDocument, validateDocument };
291
+ export { DEFAULT_HEIGHT, DEFAULT_SCHEMA_VERSION, DEFAULT_SLIDE_REMARK, DEFAULT_SLIDE_TYPE, DEFAULT_THEME, DEFAULT_THEME_OUTLINE, DEFAULT_THEME_SHADOW, DEFAULT_TITLE, DEFAULT_WIDTH, type PresentationDocument as DeckDocument, type PresentationDocumentInput as DeckDocumentInput, type PresentationDocument, type PresentationDocumentInput, SchemaValidationError, type SchemaValidationIssue, UnsupportedSchemaVersionError, type V1Document, type V1DocumentInput, type V1Element, type V1ElementInput, type V1Fill, type V1FillInput, type V1Gradient, type V1ImageElement, type V1LineElement, type V1Outline, type V1SchemaVersion, type V1Shadow, type V1ShapeElement, type V1Slide, type V1SlideBackground, type V1SlideInput, type V1TextElement, type V1Theme, type V1ThemeInput, V1_DEFAULTS, V1_SCHEMA_VERSION, migrateDocument, normalizeDocument, parseDocument, validateDocument };
package/dist/index.d.ts CHANGED
@@ -288,4 +288,4 @@ declare const V1_DEFAULTS: Pick<V1Document, 'schemaVersion' | 'title' | 'width'
288
288
  theme: V1Theme;
289
289
  };
290
290
 
291
- export { DEFAULT_HEIGHT, DEFAULT_SCHEMA_VERSION, DEFAULT_SLIDE_REMARK, DEFAULT_SLIDE_TYPE, DEFAULT_THEME, DEFAULT_THEME_OUTLINE, DEFAULT_THEME_SHADOW, DEFAULT_TITLE, DEFAULT_WIDTH, type PresentationDocument, type PresentationDocumentInput, SchemaValidationError, type SchemaValidationIssue, UnsupportedSchemaVersionError, type V1Document, type V1DocumentInput, type V1Element, type V1ElementInput, type V1Fill, type V1FillInput, type V1Gradient, type V1ImageElement, type V1LineElement, type V1Outline, type V1SchemaVersion, type V1Shadow, type V1ShapeElement, type V1Slide, type V1SlideBackground, type V1SlideInput, type V1TextElement, type V1Theme, type V1ThemeInput, V1_DEFAULTS, V1_SCHEMA_VERSION, migrateDocument, normalizeDocument, parseDocument, validateDocument };
291
+ export { DEFAULT_HEIGHT, DEFAULT_SCHEMA_VERSION, DEFAULT_SLIDE_REMARK, DEFAULT_SLIDE_TYPE, DEFAULT_THEME, DEFAULT_THEME_OUTLINE, DEFAULT_THEME_SHADOW, DEFAULT_TITLE, DEFAULT_WIDTH, type PresentationDocument as DeckDocument, type PresentationDocumentInput as DeckDocumentInput, type PresentationDocument, type PresentationDocumentInput, SchemaValidationError, type SchemaValidationIssue, UnsupportedSchemaVersionError, type V1Document, type V1DocumentInput, type V1Element, type V1ElementInput, type V1Fill, type V1FillInput, type V1Gradient, type V1ImageElement, type V1LineElement, type V1Outline, type V1SchemaVersion, type V1Shadow, type V1ShapeElement, type V1Slide, type V1SlideBackground, type V1SlideInput, type V1TextElement, type V1Theme, type V1ThemeInput, V1_DEFAULTS, V1_SCHEMA_VERSION, migrateDocument, normalizeDocument, parseDocument, validateDocument };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts","../versions/v1/defaults.ts","../runtime/errors.ts","../runtime/migrate.ts","../runtime/normalize.ts","../runtime/validate.ts","../versions/v1/schema.json","../runtime/parse.ts","../versions/v1/types.ts"],"sourcesContent":["export { parseDocument } from './runtime/parse'\nexport { migrateDocument } from './runtime/migrate'\nexport { validateDocument } from './runtime/validate'\nexport { normalizeDocument } from './runtime/normalize'\n\nexport {\n SchemaValidationError,\n UnsupportedSchemaVersionError\n} from './runtime/errors'\n\nexport {\n DEFAULT_SCHEMA_VERSION,\n DEFAULT_TITLE,\n DEFAULT_WIDTH,\n DEFAULT_HEIGHT,\n DEFAULT_THEME,\n DEFAULT_THEME_SHADOW,\n DEFAULT_THEME_OUTLINE,\n DEFAULT_SLIDE_TYPE,\n DEFAULT_SLIDE_REMARK,\n V1_DEFAULTS\n} from './versions/v1/defaults'\n\nexport { V1_SCHEMA_VERSION } from './versions/v1/types'\n\nexport type {\n PresentationDocument,\n PresentationDocumentInput,\n V1Document,\n V1DocumentInput,\n V1Element,\n V1ElementInput,\n V1Fill,\n V1FillInput,\n V1Gradient,\n V1ImageElement,\n V1LineElement,\n V1Outline,\n V1SchemaVersion,\n V1Shadow,\n V1ShapeElement,\n V1Slide,\n V1SlideBackground,\n V1SlideInput,\n V1TextElement,\n V1Theme,\n V1ThemeInput\n} from './versions/v1/types'\n\nexport type { SchemaValidationIssue } from './runtime/errors'\n","import type {\n V1Document,\n V1Outline,\n V1SchemaVersion,\n V1Shadow,\n V1Theme\n} from './types'\n\nexport const DEFAULT_SCHEMA_VERSION: V1SchemaVersion = '1.0.0'\nexport const DEFAULT_TITLE = '未命名演示文稿'\nexport const DEFAULT_WIDTH = 1000\nexport const DEFAULT_HEIGHT = 562.5\n\nexport const DEFAULT_THEME_SHADOW: V1Shadow = {\n h: 3,\n v: 3,\n blur: 2,\n color: '#808080'\n}\n\nexport const DEFAULT_THEME_OUTLINE: V1Outline = {\n width: 2,\n color: '#525252',\n style: 'solid'\n}\n\nexport const DEFAULT_THEME: V1Theme = {\n themeColors: [],\n fontColor: '#333',\n fontName: '',\n backgroundColor: '#fff',\n shadow: DEFAULT_THEME_SHADOW,\n outline: DEFAULT_THEME_OUTLINE\n}\n\nexport const DEFAULT_SLIDE_TYPE = 'content'\nexport const DEFAULT_SLIDE_REMARK = ''\n\nexport const DEFAULT_TEXT_COLOR = '#333'\nexport const DEFAULT_ELEMENT_ROTATE = 0\nexport const DEFAULT_IMAGE_FIXED_RATIO = true\nexport const DEFAULT_SHAPE_FIXED_RATIO = false\nexport const DEFAULT_LINE_STYLE = 'solid'\nexport const DEFAULT_LINE_WIDTH = 2\n\nexport const LEGACY_SLIDE_TYPE_MAP: Record<string, string> = {\n agenda: 'contents',\n section: 'transition',\n ending: 'end'\n}\n\nexport const V1_DEFAULTS: Pick<\n V1Document,\n 'schemaVersion' | 'title' | 'width' | 'height'\n> & {\n theme: V1Theme\n} = {\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: DEFAULT_TITLE,\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n theme: DEFAULT_THEME\n}\n","export type SchemaValidationIssue = {\n code: string\n path: string\n message: string\n keyword?: string\n params?: Record<string, unknown>\n}\n\nexport class SchemaValidationError extends Error {\n readonly issues: SchemaValidationIssue[]\n\n constructor(issues: SchemaValidationIssue[], message = 'Schema validation failed') {\n super(message)\n this.name = 'SchemaValidationError'\n this.issues = issues\n }\n}\n\nexport class UnsupportedSchemaVersionError extends Error {\n readonly code = 'UNSUPPORTED_SCHEMA_VERSION'\n readonly supportedVersion: string\n readonly receivedVersion?: string\n\n constructor(receivedVersion: unknown, supportedVersion: string) {\n const received =\n receivedVersion === undefined || receivedVersion === null\n ? undefined\n : String(receivedVersion)\n\n super(\n received\n ? `Unsupported schema version: ${received}. Supported version: ${supportedVersion}.`\n : `Unsupported schema version. Supported version: ${supportedVersion}.`\n )\n\n this.name = 'UnsupportedSchemaVersionError'\n this.supportedVersion = supportedVersion\n this.receivedVersion = received\n }\n}\n","import {\n DEFAULT_SCHEMA_VERSION,\n LEGACY_SLIDE_TYPE_MAP\n} from '../versions/v1/defaults'\nimport type { V1SchemaVersion } from '../versions/v1/types'\nimport { UnsupportedSchemaVersionError } from './errors'\n\ntype UnknownRecord = Record<string, unknown>\n\nconst V1_VERSION_EQUIVALENTS = new Set(['1', '1.0', '1.0.0'])\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction cloneValue<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n return structuredClone(value)\n }\n return JSON.parse(JSON.stringify(value)) as T\n}\n\nfunction normalizeVersion(value: unknown): V1SchemaVersion | null {\n if (typeof value === 'number' && Number.isFinite(value)) {\n if (value === 1) return DEFAULT_SCHEMA_VERSION\n return null\n }\n\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n if (!trimmed) return null\n if (V1_VERSION_EQUIVALENTS.has(trimmed)) return DEFAULT_SCHEMA_VERSION\n return null\n}\n\nfunction migrateSlideType(type: unknown): unknown {\n if (typeof type !== 'string') return type\n const normalized = type.trim().toLowerCase()\n return LEGACY_SLIDE_TYPE_MAP[normalized] ?? type\n}\n\nfunction toFiniteNumber(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value)) return value\n if (typeof value !== 'string') return undefined\n const trimmed = value.trim()\n if (!trimmed) return undefined\n const numeric = Number.parseFloat(trimmed)\n return Number.isFinite(numeric) ? numeric : undefined\n}\n\nfunction normalizeGradientType(value: unknown): string {\n if (typeof value !== 'string' || !value.trim()) return 'linear'\n return value === 'line' ? 'linear' : value\n}\n\nfunction normalizeGradientStopPosition(value: unknown): number {\n const numeric = toFiniteNumber(value)\n if (numeric === undefined) return 0\n if (typeof value === 'string' && value.trim().endsWith('%')) {\n return numeric\n }\n if (numeric > 1000) return numeric / 1000\n if (numeric > 100) return numeric / 1000\n return numeric\n}\n\nfunction migrateGradient(value: unknown): unknown {\n if (!isRecord(value)) return value\n\n const gradient = cloneValue(value)\n const sourceColors = Array.isArray(gradient.colors) ? gradient.colors : []\n const rotate = toFiniteNumber(gradient.rotate ?? gradient.rot) ?? 0\n\n gradient.type = normalizeGradientType(gradient.type ?? gradient.path)\n gradient.rotate = rotate\n gradient.colors = sourceColors.map((stop) => {\n if (!isRecord(stop)) return stop\n const nextStop = cloneValue(stop)\n nextStop.pos = normalizeGradientStopPosition(nextStop.pos)\n return nextStop\n })\n\n delete gradient.rot\n delete gradient.path\n\n return gradient\n}\n\nfunction migrateFill(\n fill: unknown,\n options: {\n gradient?: unknown\n pattern?: unknown\n } = {}\n): unknown {\n if (isRecord(options.gradient)) {\n return {\n type: 'gradient',\n gradient: migrateGradient(options.gradient)\n }\n }\n\n if (typeof options.pattern === 'string' && options.pattern.trim()) {\n return {\n type: 'image',\n src: options.pattern\n }\n }\n\n if (typeof fill === 'string') {\n if (!fill.trim()) return undefined\n return {\n type: 'solid',\n color: fill\n }\n }\n\n if (!isRecord(fill)) {\n return fill\n }\n\n if (fill.type === 'color' && typeof fill.value === 'string') {\n return {\n type: 'solid',\n color: fill.value\n }\n }\n\n if (isRecord(fill.gradient)) {\n return {\n type: 'gradient',\n gradient: migrateGradient(fill.gradient)\n }\n }\n\n if (fill.type === 'solid' || (fill.type === undefined && typeof fill.color === 'string')) {\n return {\n ...fill,\n type: 'solid',\n color: fill.color\n }\n }\n\n if (fill.type === 'gradient') {\n return {\n type: 'gradient',\n gradient: migrateGradient(fill.gradient ?? fill.value ?? fill)\n }\n }\n\n if (\n fill.type === 'image' ||\n fill.type === 'pattern' ||\n typeof fill.src === 'string' ||\n isRecord(fill.value)\n ) {\n const imageValue = isRecord(fill.value) ? fill.value : undefined\n const src =\n typeof fill.src === 'string'\n ? fill.src\n : typeof imageValue?.picBase64 === 'string'\n ? imageValue.picBase64\n : undefined\n const opacity = toFiniteNumber(fill.opacity ?? imageValue?.opacity)\n\n if (src) {\n return {\n type: 'image',\n src,\n ...(opacity === undefined ? {} : { opacity })\n }\n }\n }\n\n return fill\n}\n\nfunction migrateElement(element: unknown): unknown {\n if (!isRecord(element)) return element\n\n const nextElement = cloneValue(element)\n nextElement.fill = migrateFill(nextElement.fill, {\n gradient: nextElement.gradient,\n pattern: nextElement.pattern\n })\n delete nextElement.gradient\n delete nextElement.pattern\n return nextElement\n}\n\nexport function migrateDocument(\n input: unknown,\n toVersion: V1SchemaVersion = DEFAULT_SCHEMA_VERSION\n): unknown {\n if (!isRecord(input)) return input\n\n const migrated = cloneValue(input) as UnknownRecord\n const incomingVersion = migrated.schemaVersion ?? migrated.version\n\n if (incomingVersion === undefined) {\n migrated.schemaVersion = toVersion\n } else {\n const normalizedVersion = normalizeVersion(incomingVersion)\n if (!normalizedVersion || normalizedVersion !== toVersion) {\n throw new UnsupportedSchemaVersionError(incomingVersion, toVersion)\n }\n migrated.schemaVersion = toVersion\n }\n\n delete migrated.version\n\n if (isRecord(migrated.theme)) {\n const theme = migrated.theme\n if (typeof theme.fontname === 'string' && theme.fontName === undefined) {\n theme.fontName = theme.fontname\n delete theme.fontname\n }\n }\n\n if (Array.isArray(migrated.slides)) {\n migrated.slides = migrated.slides.map((slide) => {\n if (!isRecord(slide)) return slide\n const nextSlide = cloneValue(slide)\n nextSlide.type = migrateSlideType(nextSlide.type)\n nextSlide.background = migrateFill(nextSlide.background)\n if (Array.isArray(nextSlide.elements)) {\n nextSlide.elements = nextSlide.elements.map((element) => migrateElement(element))\n }\n return nextSlide\n })\n }\n\n return migrated\n}\n","import {\n DEFAULT_ELEMENT_ROTATE,\n DEFAULT_HEIGHT,\n DEFAULT_IMAGE_FIXED_RATIO,\n DEFAULT_LINE_STYLE,\n DEFAULT_LINE_WIDTH,\n DEFAULT_SCHEMA_VERSION,\n DEFAULT_SHAPE_FIXED_RATIO,\n DEFAULT_SLIDE_REMARK,\n DEFAULT_SLIDE_TYPE,\n DEFAULT_TEXT_COLOR,\n DEFAULT_THEME,\n DEFAULT_THEME_OUTLINE,\n DEFAULT_THEME_SHADOW,\n DEFAULT_TITLE,\n DEFAULT_WIDTH,\n LEGACY_SLIDE_TYPE_MAP\n} from '../versions/v1/defaults'\nimport type {\n V1Document,\n V1DocumentInput,\n V1Element,\n V1Fill,\n V1Gradient,\n V1ImageElement,\n V1LineElement,\n V1Outline,\n V1Shadow,\n V1ShapeElement,\n V1Slide,\n V1SlideBackground,\n V1TextElement,\n V1Theme\n} from '../versions/v1/types'\n\ntype UnknownRecord = Record<string, unknown>\nconst TRANSPARENT_FILL = 'rgba(255,255,255,0)'\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction cloneValue<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n return structuredClone(value)\n }\n return JSON.parse(JSON.stringify(value)) as T\n}\n\nfunction asString(value: unknown, fallback: string): string {\n return typeof value === 'string' ? value : fallback\n}\n\nfunction asNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback\n}\n\nfunction asOptionalNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined\n}\n\nfunction asBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback\n}\n\nfunction asPair(value: unknown, fallback: [number, number]): [number, number] {\n if (!Array.isArray(value) || value.length < 2) return fallback\n return [asNumber(value[0], fallback[0]), asNumber(value[1], fallback[1])]\n}\n\nfunction asLinePoints(value: unknown): [string, string] {\n if (!Array.isArray(value)) return ['', '']\n const first = typeof value[0] === 'string' ? value[0] : ''\n const second = typeof value[1] === 'string' ? value[1] : ''\n return [first, second]\n}\n\nfunction normalizeShadow(value: unknown): V1Shadow {\n const source = isRecord(value) ? value : {}\n return {\n ...source,\n h: asNumber(source.h, DEFAULT_THEME_SHADOW.h),\n v: asNumber(source.v, DEFAULT_THEME_SHADOW.v),\n blur: asNumber(source.blur, DEFAULT_THEME_SHADOW.blur),\n color: asString(source.color, DEFAULT_THEME_SHADOW.color)\n }\n}\n\nfunction normalizeOutline(value: unknown): V1Outline {\n const source = isRecord(value) ? value : {}\n return {\n ...source,\n width: asNumber(source.width, DEFAULT_THEME_OUTLINE.width),\n color: asString(source.color, DEFAULT_THEME_OUTLINE.color),\n style: asString(source.style, DEFAULT_THEME_OUTLINE.style)\n }\n}\n\nfunction normalizeTheme(value: unknown): V1Theme {\n const source = isRecord(value) ? value : {}\n const themeColors = Array.isArray(source.themeColors)\n ? source.themeColors.filter((item): item is string => typeof item === 'string')\n : DEFAULT_THEME.themeColors.slice()\n\n return {\n ...source,\n themeColors,\n fontColor: asString(source.fontColor, DEFAULT_THEME.fontColor),\n fontName: asString(source.fontName, DEFAULT_THEME.fontName),\n backgroundColor: asString(source.backgroundColor, DEFAULT_THEME.backgroundColor),\n shadow: normalizeShadow(source.shadow),\n outline: normalizeOutline(source.outline)\n }\n}\n\nfunction normalizeGradient(value: unknown): V1Gradient | undefined {\n if (!isRecord(value)) return undefined\n\n const colors = Array.isArray(value.colors)\n ? value.colors\n .filter((stop): stop is UnknownRecord => isRecord(stop))\n .map((stop) => ({\n ...stop,\n pos: asNumber(stop.pos, 0),\n color: asString(stop.color, '#000000')\n }))\n : []\n\n return {\n ...value,\n type: asString(value.type, 'linear'),\n rotate: asNumber(value.rotate, 0),\n colors\n }\n}\n\nfunction normalizeFill(\n value: unknown,\n options: {\n fallbackSolidColor?: string\n required?: boolean\n } = {}\n): V1Fill | undefined {\n if (!isRecord(value)) {\n if (!options.required) return undefined\n return {\n type: 'solid',\n color: options.fallbackSolidColor ?? TRANSPARENT_FILL\n }\n }\n\n if (value.type === 'gradient') {\n return {\n ...value,\n type: 'gradient',\n gradient:\n normalizeGradient(value.gradient) ??\n normalizeGradient(undefined) ?? {\n type: 'linear',\n rotate: 0,\n colors: [\n { pos: 0, color: options.fallbackSolidColor ?? TRANSPARENT_FILL },\n { pos: 100, color: options.fallbackSolidColor ?? TRANSPARENT_FILL }\n ]\n }\n }\n }\n\n if (value.type === 'image') {\n return {\n ...value,\n type: 'image',\n src: asString(value.src, ''),\n ...(asOptionalNumber(value.opacity) === undefined\n ? {}\n : { opacity: asOptionalNumber(value.opacity) })\n }\n }\n\n return {\n ...value,\n type: 'solid',\n color: asString(value.color, options.fallbackSolidColor ?? TRANSPARENT_FILL)\n }\n}\n\nfunction normalizeBackground(\n value: unknown,\n fallbackColor: string\n): V1SlideBackground | undefined {\n return normalizeFill(value, { fallbackSolidColor: fallbackColor })\n}\n\nfunction normalizeElement(\n value: unknown,\n slideIndex: number,\n elementIndex: number,\n theme: V1Theme\n): V1Element {\n const fallbackId = `slide-${slideIndex + 1}-element-${elementIndex + 1}`\n\n if (!isRecord(value)) {\n return {\n type: 'unknown',\n id: fallbackId,\n left: 0,\n top: 0,\n rotate: DEFAULT_ELEMENT_ROTATE\n }\n }\n\n const type =\n typeof value.type === 'string' && value.type.trim().length > 0\n ? value.type\n : 'unknown'\n\n const base = {\n ...value,\n type,\n id: asString(value.id, fallbackId),\n left: asNumber(value.left, 0),\n top: asNumber(value.top, 0),\n rotate: asNumber(value.rotate, DEFAULT_ELEMENT_ROTATE)\n }\n\n if (type === 'text') {\n const textElement: V1TextElement = {\n ...base,\n type: 'text',\n width: asNumber(value.width, 0),\n height: asNumber(value.height, 0),\n content: asString(value.content, ''),\n defaultColor: asString(value.defaultColor, theme.fontColor || DEFAULT_TEXT_COLOR),\n defaultFontName: asString(value.defaultFontName, theme.fontName),\n fill: normalizeFill(value.fill),\n vertical: asBoolean(value.vertical, false)\n }\n return textElement\n }\n\n if (type === 'shape') {\n const width = asNumber(value.width, 0)\n const height = asNumber(value.height, 0)\n const shapeElement: V1ShapeElement = {\n ...base,\n type: 'shape',\n width,\n height,\n path: asString(value.path, ''),\n viewBox: asPair(value.viewBox, [width, height]),\n fill: normalizeFill(value.fill, {\n fallbackSolidColor: TRANSPARENT_FILL,\n required: true\n }) as V1Fill,\n fixedRatio: asBoolean(value.fixedRatio, DEFAULT_SHAPE_FIXED_RATIO)\n }\n return shapeElement\n }\n\n if (type === 'line') {\n const lineElement: V1LineElement = {\n ...base,\n type: 'line',\n width: asNumber(value.width, DEFAULT_LINE_WIDTH),\n start: asPair(value.start, [0, 0]),\n end: asPair(value.end, [0, 0]),\n points: asLinePoints(value.points),\n color: asString(value.color, '#000000'),\n style: asString(value.style, DEFAULT_LINE_STYLE)\n }\n return lineElement\n }\n\n if (type === 'image') {\n const imageElement: V1ImageElement = {\n ...base,\n type: 'image',\n width: asNumber(value.width, 0),\n height: asNumber(value.height, 0),\n src: asString(value.src, ''),\n fixedRatio: asBoolean(value.fixedRatio, DEFAULT_IMAGE_FIXED_RATIO)\n }\n return imageElement\n }\n\n return base\n}\n\nfunction normalizeSlide(value: unknown, index: number, theme: V1Theme): V1Slide {\n if (!isRecord(value)) {\n return {\n id: `slide-${index + 1}`,\n type: DEFAULT_SLIDE_TYPE,\n remark: DEFAULT_SLIDE_REMARK,\n elements: []\n }\n }\n\n const rawType = typeof value.type === 'string' ? value.type.trim() : ''\n const normalizedType =\n rawType && LEGACY_SLIDE_TYPE_MAP[rawType.toLowerCase()]\n ? LEGACY_SLIDE_TYPE_MAP[rawType.toLowerCase()]\n : rawType || DEFAULT_SLIDE_TYPE\n\n const sourceElements = Array.isArray(value.elements) ? value.elements : []\n const elements = sourceElements.map((element, elementIndex) =>\n normalizeElement(element, index, elementIndex, theme)\n )\n\n const background = normalizeBackground(value.background, theme.backgroundColor)\n\n return {\n ...value,\n id: asString(value.id, `slide-${index + 1}`),\n type: normalizedType,\n remark: asString(value.remark, DEFAULT_SLIDE_REMARK),\n background,\n elements\n }\n}\n\nexport function normalizeDocument(input: V1DocumentInput): V1Document {\n const source = cloneValue(input)\n\n if (!isRecord(source)) {\n return {\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: DEFAULT_TITLE,\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n theme: normalizeTheme(undefined),\n slides: []\n }\n }\n\n const theme = normalizeTheme(source.theme)\n const sourceSlides = Array.isArray(source.slides) ? source.slides : []\n const slides = sourceSlides.map((slide, index) => normalizeSlide(slide, index, theme))\n\n const normalized = {\n ...source,\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: asString(source.title, DEFAULT_TITLE),\n width: asNumber(source.width, DEFAULT_WIDTH),\n height: asNumber(source.height, DEFAULT_HEIGHT),\n theme,\n slides\n } as V1Document\n\n delete (normalized as UnknownRecord).version\n\n return normalized\n}\n","import Ajv, { type ErrorObject } from 'ajv'\nimport schemaV1 from '../versions/v1/schema.json'\nimport type { V1DocumentInput } from '../versions/v1/types'\nimport { SchemaValidationError, type SchemaValidationIssue } from './errors'\n\nconst ajv = new Ajv({\n allErrors: true,\n strict: false,\n allowUnionTypes: true\n})\n\nconst validateV1 = ajv.compile(schemaV1)\n\nfunction mapError(error: ErrorObject): SchemaValidationIssue {\n return {\n code: 'SCHEMA_VALIDATION_ERROR',\n path: error.instancePath || '/',\n message: error.message ?? 'Invalid value',\n keyword: error.keyword,\n params:\n error.params && typeof error.params === 'object'\n ? (error.params as Record<string, unknown>)\n : undefined\n }\n}\n\nexport function validateDocument(input: unknown): V1DocumentInput {\n const valid = validateV1(input)\n if (!valid) {\n const issues = (validateV1.errors ?? []).map(mapError)\n throw new SchemaValidationError(issues)\n }\n\n return input as V1DocumentInput\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://json2pptx.dev/json2pptx-schema/v1\",\n \"title\": \"json2pptx document schema v1\",\n \"type\": \"object\",\n \"required\": [\n \"slides\"\n ],\n \"properties\": {\n \"schemaVersion\": {\n \"const\": \"1.0.0\"\n },\n \"version\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"height\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"theme\": {\n \"$ref\": \"#/definitions/theme\"\n },\n \"slides\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/slide\"\n }\n }\n },\n \"additionalProperties\": true,\n \"definitions\": {\n \"shadow\": {\n \"type\": \"object\",\n \"required\": [\n \"h\",\n \"v\",\n \"blur\",\n \"color\"\n ],\n \"properties\": {\n \"h\": {\n \"type\": \"number\"\n },\n \"v\": {\n \"type\": \"number\"\n },\n \"blur\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"outline\": {\n \"type\": \"object\",\n \"required\": [\n \"width\",\n \"color\",\n \"style\"\n ],\n \"properties\": {\n \"width\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradientStop\": {\n \"type\": \"object\",\n \"required\": [\n \"pos\",\n \"color\"\n ],\n \"properties\": {\n \"pos\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradient\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"rotate\",\n \"colors\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"rotate\": {\n \"type\": \"number\"\n },\n \"colors\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": {\n \"$ref\": \"#/definitions/gradientStop\"\n }\n }\n },\n \"additionalProperties\": true\n },\n \"solidFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"color\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"solid\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradientFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"gradient\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"gradient\"\n },\n \"gradient\": {\n \"$ref\": \"#/definitions/gradient\"\n }\n },\n \"additionalProperties\": true\n },\n \"imageFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"src\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n },\n \"src\": {\n \"type\": \"string\"\n },\n \"opacity\": {\n \"type\": \"number\"\n }\n },\n \"additionalProperties\": true\n },\n \"fill\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/solidFill\"\n },\n {\n \"$ref\": \"#/definitions/gradientFill\"\n },\n {\n \"$ref\": \"#/definitions/imageFill\"\n }\n ]\n },\n \"theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"themeColors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fontColor\": {\n \"type\": \"string\"\n },\n \"fontName\": {\n \"type\": \"string\"\n },\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"shadow\": {\n \"$ref\": \"#/definitions/shadow\"\n },\n \"outline\": {\n \"$ref\": \"#/definitions/outline\"\n }\n },\n \"additionalProperties\": true\n },\n \"pair\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"linePoints\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"shapeText\": {\n \"type\": \"object\",\n \"required\": [\n \"content\"\n ],\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"defaultColor\": {\n \"type\": \"string\"\n },\n \"defaultFontName\": {\n \"type\": \"string\"\n },\n \"align\": {\n \"type\": \"string\"\n },\n \"lineHeight\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"clip\": {\n \"type\": \"object\",\n \"required\": [\n \"shape\",\n \"range\"\n ],\n \"properties\": {\n \"shape\": {\n \"type\": \"string\"\n },\n \"range\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"$ref\": \"#/definitions/pair\"\n }\n }\n },\n \"additionalProperties\": true\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"opacity\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"grayscale\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"blur\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"sepia\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"saturate\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"additionalProperties\": true\n },\n \"tableCellStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"fontname\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"align\": {\n \"type\": \"string\"\n },\n \"fontsize\": {\n \"type\": \"string\"\n },\n \"backcolor\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"tableCell\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"colspan\": {\n \"type\": \"number\"\n },\n \"rowspan\": {\n \"type\": \"number\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"$ref\": \"#/definitions/tableCellStyle\"\n }\n },\n \"additionalProperties\": true\n },\n \"element\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"groupId\": {\n \"type\": \"string\"\n },\n \"left\": {\n \"type\": \"number\"\n },\n \"top\": {\n \"type\": \"number\"\n },\n \"width\": {\n \"type\": \"number\"\n },\n \"height\": {\n \"type\": \"number\"\n },\n \"rotate\": {\n \"type\": \"number\"\n },\n \"lock\": {\n \"type\": \"boolean\"\n },\n \"opacity\": {\n \"type\": \"number\"\n },\n \"flipH\": {\n \"type\": \"boolean\"\n },\n \"flipV\": {\n \"type\": \"boolean\"\n },\n \"shadow\": {\n \"$ref\": \"#/definitions/shadow\"\n },\n \"outline\": {\n \"$ref\": \"#/definitions/outline\"\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"text\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"content\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"defaultColor\": {\n \"type\": \"string\"\n },\n \"defaultFontName\": {\n \"type\": \"string\"\n },\n \"fill\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"lineHeight\": {\n \"type\": \"number\"\n },\n \"paragraphSpace\": {\n \"type\": \"number\"\n },\n \"textType\": {\n \"type\": \"string\"\n },\n \"vertical\": {\n \"type\": \"boolean\"\n },\n \"wordSpace\": {\n \"type\": \"number\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"shape\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"path\",\n \"viewBox\",\n \"fill\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"viewBox\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"fill\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"fixedRatio\": {\n \"type\": \"boolean\"\n },\n \"keypoints\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"pathFormula\": {\n \"type\": \"string\"\n },\n \"special\": {\n \"type\": \"boolean\"\n },\n \"text\": {\n \"$ref\": \"#/definitions/shapeText\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"line\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"start\",\n \"end\",\n \"points\",\n \"color\",\n \"width\",\n \"left\",\n \"top\"\n ],\n \"properties\": {\n \"start\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"end\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"points\": {\n \"$ref\": \"#/definitions/linePoints\"\n },\n \"broken\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"src\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"fixedRatio\": {\n \"type\": \"boolean\"\n },\n \"clip\": {\n \"$ref\": \"#/definitions/clip\"\n },\n \"filters\": {\n \"$ref\": \"#/definitions/filters\"\n },\n \"imageType\": {\n \"type\": \"string\"\n },\n \"radius\": {\n \"type\": \"number\"\n },\n \"colorMask\": {\n \"type\": \"string\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"table\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"colWidths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/tableCell\"\n }\n }\n },\n \"cellMinHeight\": {\n \"type\": \"number\"\n }\n }\n }\n }\n ],\n \"additionalProperties\": true\n },\n \"slideBackground\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"slide\": {\n \"type\": \"object\",\n \"required\": [\n \"elements\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"remark\": {\n \"type\": \"string\"\n },\n \"background\": {\n \"$ref\": \"#/definitions/slideBackground\"\n },\n \"elements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/element\"\n }\n }\n },\n \"additionalProperties\": true\n }\n }\n}\n","import type { PresentationDocument } from '../versions/v1/types'\nimport { migrateDocument } from './migrate'\nimport { normalizeDocument } from './normalize'\nimport { validateDocument } from './validate'\n\nexport function parseDocument(input: unknown): PresentationDocument {\n const migrated = migrateDocument(input)\n const validated = validateDocument(migrated)\n return normalizeDocument(validated)\n}\n","export const V1_SCHEMA_VERSION = '1.0.0' as const\n\nexport type V1SchemaVersion = typeof V1_SCHEMA_VERSION\n\nexport type V1Outline = {\n width: number\n color: string\n style: string\n [key: string]: unknown\n}\n\nexport type V1Shadow = {\n h: number\n v: number\n blur: number\n color: string\n [key: string]: unknown\n}\n\nexport type V1GradientStop = {\n pos: number\n color: string\n [key: string]: unknown\n}\n\nexport type V1Gradient = {\n type: string\n rotate: number\n colors: V1GradientStop[]\n [key: string]: unknown\n}\n\nexport type V1SolidFillInput = {\n type?: 'solid'\n color?: string\n [key: string]: unknown\n}\n\nexport type V1SolidFill = {\n type: 'solid'\n color: string\n [key: string]: unknown\n}\n\nexport type V1GradientFillInput = {\n type: 'gradient'\n gradient?: V1Gradient\n [key: string]: unknown\n}\n\nexport type V1GradientFill = {\n type: 'gradient'\n gradient: V1Gradient\n [key: string]: unknown\n}\n\nexport type V1ImageFillInput = {\n type: 'image'\n src?: string\n opacity?: number\n [key: string]: unknown\n}\n\nexport type V1ImageFill = {\n type: 'image'\n src: string\n opacity?: number\n [key: string]: unknown\n}\n\nexport type V1FillInput = V1SolidFillInput | V1GradientFillInput | V1ImageFillInput\n\nexport type V1Fill = V1SolidFill | V1GradientFill | V1ImageFill\n\nexport type V1ThemeInput = {\n themeColors?: string[]\n fontColor?: string\n fontName?: string\n backgroundColor?: string\n shadow?: Partial<V1Shadow>\n outline?: Partial<V1Outline>\n [key: string]: unknown\n}\n\nexport type V1Theme = {\n themeColors: string[]\n fontColor: string\n fontName: string\n backgroundColor: string\n shadow: V1Shadow\n outline: V1Outline\n [key: string]: unknown\n}\n\nexport type V1SlideBackgroundInput = V1FillInput\n\nexport type V1SlideBackground = V1Fill\n\nexport type V1ElementBaseInput<T extends string = string> = {\n type: T\n id?: string\n groupId?: string\n left?: number\n top?: number\n width?: number\n height?: number\n rotate?: number\n lock?: boolean\n opacity?: number\n flipH?: boolean\n flipV?: boolean\n outline?: Partial<V1Outline>\n shadow?: Partial<V1Shadow>\n [key: string]: unknown\n}\n\nexport type V1ElementBase<T extends string = string> = V1ElementBaseInput<T> & {\n id: string\n left: number\n top: number\n rotate: number\n}\n\nexport type V1ShapeText = {\n content: string\n defaultColor?: string\n defaultFontName?: string\n align?: string\n lineHeight?: number\n type?: string\n [key: string]: unknown\n}\n\nexport type V1TextElementInput = V1ElementBaseInput<'text'> & {\n content?: string\n defaultColor?: string\n defaultFontName?: string\n fill?: V1FillInput\n lineHeight?: number\n paragraphSpace?: number\n textType?: string\n vertical?: boolean\n wordSpace?: number\n}\n\nexport type V1TextElement = V1ElementBase<'text'> & {\n width: number\n height: number\n content: string\n defaultColor: string\n defaultFontName: string\n fill?: V1Fill\n lineHeight?: number\n paragraphSpace?: number\n textType?: string\n vertical: boolean\n wordSpace?: number\n}\n\nexport type V1ShapeElementInput = V1ElementBaseInput<'shape'> & {\n path?: string\n viewBox?: [number, number]\n fill?: V1FillInput\n fixedRatio?: boolean\n keypoints?: number[]\n pathFormula?: string\n special?: boolean\n text?: V1ShapeText\n}\n\nexport type V1ShapeElement = V1ElementBase<'shape'> & {\n width: number\n height: number\n path: string\n viewBox: [number, number]\n fill: V1Fill\n fixedRatio: boolean\n keypoints?: number[]\n pathFormula?: string\n special?: boolean\n text?: V1ShapeText\n}\n\nexport type V1LineElementInput = V1ElementBaseInput<'line'> & {\n start?: [number, number]\n end?: [number, number]\n points?: string[]\n broken?: [number, number]\n color?: string\n style?: string\n width?: number\n}\n\nexport type V1LineElement = V1ElementBase<'line'> & {\n start: [number, number]\n end: [number, number]\n points: [string, string]\n broken?: [number, number]\n color: string\n style: string\n width: number\n}\n\nexport type V1ImageClip = {\n shape: string\n range: [[number, number], [number, number]]\n [key: string]: unknown\n}\n\nexport type V1ImageFilters = {\n opacity?: string | number\n grayscale?: string | number\n blur?: string | number\n sepia?: string | number\n saturate?: string | number\n [key: string]: unknown\n}\n\nexport type V1ImageElementInput = V1ElementBaseInput<'image'> & {\n src?: string\n fixedRatio?: boolean\n clip?: V1ImageClip\n filters?: V1ImageFilters\n imageType?: string\n radius?: number\n colorMask?: string\n}\n\nexport type V1ImageElement = V1ElementBase<'image'> & {\n width: number\n height: number\n src: string\n fixedRatio: boolean\n clip?: V1ImageClip\n filters?: V1ImageFilters\n imageType?: string\n radius?: number\n colorMask?: string\n}\n\nexport type V1UnknownElementInput = V1ElementBaseInput<string>\n\nexport type V1UnknownElement = V1ElementBase<string>\n\nexport type V1ElementInput =\n | V1TextElementInput\n | V1ShapeElementInput\n | V1LineElementInput\n | V1ImageElementInput\n | V1UnknownElementInput\n\nexport type V1Element =\n | V1TextElement\n | V1ShapeElement\n | V1LineElement\n | V1ImageElement\n | V1UnknownElement\n\nexport type V1SlideInput = {\n id?: string\n type?: string\n remark?: string\n background?: V1SlideBackgroundInput\n elements?: V1ElementInput[]\n [key: string]: unknown\n}\n\nexport type V1Slide = {\n id: string\n type: string\n remark: string\n background?: V1SlideBackground\n elements: V1Element[]\n [key: string]: unknown\n}\n\nexport type V1DocumentInput = {\n schemaVersion?: string\n version?: string | number\n title?: string\n width?: number\n height?: number\n theme?: V1ThemeInput\n slides: V1SlideInput[]\n [key: string]: unknown\n}\n\nexport type V1Document = {\n schemaVersion: V1SchemaVersion\n title: string\n width: number\n height: number\n theme: V1Theme\n slides: V1Slide[]\n [key: string]: unknown\n}\n\nexport type PresentationDocumentInput = V1DocumentInput\n\nexport type PresentationDocument = V1Document\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACQO,IAAM,yBAA0C;AAChD,IAAM,gBAAgB;AACtB,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AAEvB,IAAM,uBAAiC;AAAA,EAC5C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM;AAAA,EACN,OAAO;AACT;AAEO,IAAM,wBAAmC;AAAA,EAC9C,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT;AAEO,IAAM,gBAAyB;AAAA,EACpC,aAAa,CAAC;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,IAAM,qBAAqB;AAC3B,IAAM,uBAAuB;AAE7B,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAC/B,IAAM,4BAA4B;AAClC,IAAM,4BAA4B;AAClC,IAAM,qBAAqB;AAC3B,IAAM,qBAAqB;AAE3B,IAAM,wBAAgD;AAAA,EAC3D,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AACV;AAEO,IAAM,cAKT;AAAA,EACF,eAAe;AAAA,EACf,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;;;ACtDO,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAG/C,YAAY,QAAiC,UAAU,4BAA4B;AACjF,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;AAEO,IAAM,gCAAN,cAA4C,MAAM;AAAA,EAKvD,YAAY,iBAA0B,kBAA0B;AAC9D,UAAM,WACJ,oBAAoB,UAAa,oBAAoB,OACjD,SACA,OAAO,eAAe;AAE5B;AAAA,MACE,WACI,+BAA+B,QAAQ,wBAAwB,gBAAgB,MAC/E,kDAAkD,gBAAgB;AAAA,IACxE;AAdF,SAAS,OAAO;AAgBd,SAAK,OAAO;AACZ,SAAK,mBAAmB;AACxB,SAAK,kBAAkB;AAAA,EACzB;AACF;;;AC9BA,IAAM,yBAAyB,oBAAI,IAAI,CAAC,KAAK,OAAO,OAAO,CAAC;AAE5D,SAAS,SAAS,OAAwC;AACxD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,WAAc,OAAa;AAClC,MAAI,OAAO,oBAAoB,YAAY;AACzC,WAAO,gBAAgB,KAAK;AAAA,EAC9B;AACA,SAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;AAEA,SAAS,iBAAiB,OAAwC;AAChE,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AACvD,QAAI,UAAU,EAAG,QAAO;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,uBAAuB,IAAI,OAAO,EAAG,QAAO;AAChD,SAAO;AACT;AAEA,SAAS,iBAAiB,MAAwB;AAChD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,QAAM,aAAa,KAAK,KAAK,EAAE,YAAY;AAC3C,SAAO,sBAAsB,UAAU,KAAK;AAC9C;AAEA,SAAS,eAAe,OAAoC;AAC1D,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,EAAG,QAAO;AAChE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,UAAU,OAAO,WAAW,OAAO;AACzC,SAAO,OAAO,SAAS,OAAO,IAAI,UAAU;AAC9C;AAEA,SAAS,sBAAsB,OAAwB;AACrD,MAAI,OAAO,UAAU,YAAY,CAAC,MAAM,KAAK,EAAG,QAAO;AACvD,SAAO,UAAU,SAAS,WAAW;AACvC;AAEA,SAAS,8BAA8B,OAAwB;AAC7D,QAAM,UAAU,eAAe,KAAK;AACpC,MAAI,YAAY,OAAW,QAAO;AAClC,MAAI,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS,GAAG,GAAG;AAC3D,WAAO;AAAA,EACT;AACA,MAAI,UAAU,IAAM,QAAO,UAAU;AACrC,MAAI,UAAU,IAAK,QAAO,UAAU;AACpC,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAyB;AAChD,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,WAAW,WAAW,KAAK;AACjC,QAAM,eAAe,MAAM,QAAQ,SAAS,MAAM,IAAI,SAAS,SAAS,CAAC;AACzE,QAAM,SAAS,eAAe,SAAS,UAAU,SAAS,GAAG,KAAK;AAElE,WAAS,OAAO,sBAAsB,SAAS,QAAQ,SAAS,IAAI;AACpE,WAAS,SAAS;AAClB,WAAS,SAAS,aAAa,IAAI,CAAC,SAAS;AAC3C,QAAI,CAAC,SAAS,IAAI,EAAG,QAAO;AAC5B,UAAM,WAAW,WAAW,IAAI;AAChC,aAAS,MAAM,8BAA8B,SAAS,GAAG;AACzD,WAAO;AAAA,EACT,CAAC;AAED,SAAO,SAAS;AAChB,SAAO,SAAS;AAEhB,SAAO;AACT;AAEA,SAAS,YACP,MACA,UAGI,CAAC,GACI;AACT,MAAI,SAAS,QAAQ,QAAQ,GAAG;AAC9B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,QAAQ,QAAQ;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,KAAK,GAAG;AACjE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI,CAAC,KAAK,KAAK,EAAG,QAAO;AACzB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,CAAC,SAAS,IAAI,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,MAAI,KAAK,SAAS,WAAW,OAAO,KAAK,UAAU,UAAU;AAC3D,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,QAAQ,GAAG;AAC3B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,KAAK,QAAQ;AAAA,IACzC;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,WAAY,KAAK,SAAS,UAAa,OAAO,KAAK,UAAU,UAAW;AACxF,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,YAAY;AAC5B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,KAAK,YAAY,KAAK,SAAS,IAAI;AAAA,IAC/D;AAAA,EACF;AAEA,MACE,KAAK,SAAS,WACd,KAAK,SAAS,aACd,OAAO,KAAK,QAAQ,YACpB,SAAS,KAAK,KAAK,GACnB;AACA,UAAM,aAAa,SAAS,KAAK,KAAK,IAAI,KAAK,QAAQ;AACvD,UAAM,MACJ,OAAO,KAAK,QAAQ,WAChB,KAAK,MACL,OAAO,YAAY,cAAc,WACjC,WAAW,YACX;AACN,UAAM,UAAU,eAAe,KAAK,WAAW,YAAY,OAAO;AAElE,QAAI,KAAK;AACP,aAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,GAAI,YAAY,SAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,SAA2B;AACjD,MAAI,CAAC,SAAS,OAAO,EAAG,QAAO;AAE/B,QAAM,cAAc,WAAW,OAAO;AACtC,cAAY,OAAO,YAAY,YAAY,MAAM;AAAA,IAC/C,UAAU,YAAY;AAAA,IACtB,SAAS,YAAY;AAAA,EACvB,CAAC;AACD,SAAO,YAAY;AACnB,SAAO,YAAY;AACnB,SAAO;AACT;AAEO,SAAS,gBACd,OACA,YAA6B,wBACpB;AACT,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,WAAW,WAAW,KAAK;AACjC,QAAM,kBAAkB,SAAS,iBAAiB,SAAS;AAE3D,MAAI,oBAAoB,QAAW;AACjC,aAAS,gBAAgB;AAAA,EAC3B,OAAO;AACL,UAAM,oBAAoB,iBAAiB,eAAe;AAC1D,QAAI,CAAC,qBAAqB,sBAAsB,WAAW;AACzD,YAAM,IAAI,8BAA8B,iBAAiB,SAAS;AAAA,IACpE;AACA,aAAS,gBAAgB;AAAA,EAC3B;AAEA,SAAO,SAAS;AAEhB,MAAI,SAAS,SAAS,KAAK,GAAG;AAC5B,UAAM,QAAQ,SAAS;AACvB,QAAI,OAAO,MAAM,aAAa,YAAY,MAAM,aAAa,QAAW;AACtE,YAAM,WAAW,MAAM;AACvB,aAAO,MAAM;AAAA,IACf;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,SAAS,MAAM,GAAG;AAClC,aAAS,SAAS,SAAS,OAAO,IAAI,CAAC,UAAU;AAC/C,UAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,YAAM,YAAY,WAAW,KAAK;AAClC,gBAAU,OAAO,iBAAiB,UAAU,IAAI;AAChD,gBAAU,aAAa,YAAY,UAAU,UAAU;AACvD,UAAI,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACrC,kBAAU,WAAW,UAAU,SAAS,IAAI,CAAC,YAAY,eAAe,OAAO,CAAC;AAAA,MAClF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AACT;;;ACrMA,IAAM,mBAAmB;AAEzB,SAASA,UAAS,OAAwC;AACxD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAASC,YAAc,OAAa;AAClC,MAAI,OAAO,oBAAoB,YAAY;AACzC,WAAO,gBAAgB,KAAK;AAAA,EAC9B;AACA,SAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;AAEA,SAAS,SAAS,OAAgB,UAA0B;AAC1D,SAAO,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAEA,SAAS,SAAS,OAAgB,UAA0B;AAC1D,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAAI,QAAQ;AACvE;AAEA,SAAS,iBAAiB,OAAoC;AAC5D,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAAI,QAAQ;AACvE;AAEA,SAAS,UAAU,OAAgB,UAA4B;AAC7D,SAAO,OAAO,UAAU,YAAY,QAAQ;AAC9C;AAEA,SAAS,OAAO,OAAgB,UAA8C;AAC5E,MAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,EAAG,QAAO;AACtD,SAAO,CAAC,SAAS,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1E;AAEA,SAAS,aAAa,OAAkC;AACtD,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC,IAAI,EAAE;AACzC,QAAM,QAAQ,OAAO,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,IAAI;AACxD,QAAM,SAAS,OAAO,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,IAAI;AACzD,SAAO,CAAC,OAAO,MAAM;AACvB;AAEA,SAAS,gBAAgB,OAA0B;AACjD,QAAM,SAASD,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,SAAS,OAAO,GAAG,qBAAqB,CAAC;AAAA,IAC5C,GAAG,SAAS,OAAO,GAAG,qBAAqB,CAAC;AAAA,IAC5C,MAAM,SAAS,OAAO,MAAM,qBAAqB,IAAI;AAAA,IACrD,OAAO,SAAS,OAAO,OAAO,qBAAqB,KAAK;AAAA,EAC1D;AACF;AAEA,SAAS,iBAAiB,OAA2B;AACnD,QAAM,SAASA,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,IACzD,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,IACzD,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,EAC3D;AACF;AAEA,SAAS,eAAe,OAAyB;AAC/C,QAAM,SAASA,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,QAAM,cAAc,MAAM,QAAQ,OAAO,WAAW,IAChD,OAAO,YAAY,OAAO,CAAC,SAAyB,OAAO,SAAS,QAAQ,IAC5E,cAAc,YAAY,MAAM;AAEpC,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,WAAW,SAAS,OAAO,WAAW,cAAc,SAAS;AAAA,IAC7D,UAAU,SAAS,OAAO,UAAU,cAAc,QAAQ;AAAA,IAC1D,iBAAiB,SAAS,OAAO,iBAAiB,cAAc,eAAe;AAAA,IAC/E,QAAQ,gBAAgB,OAAO,MAAM;AAAA,IACrC,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC1C;AACF;AAEA,SAAS,kBAAkB,OAAwC;AACjE,MAAI,CAACA,UAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,SAAS,MAAM,QAAQ,MAAM,MAAM,IACrC,MAAM,OACH,OAAO,CAAC,SAAgCA,UAAS,IAAI,CAAC,EACtD,IAAI,CAAC,UAAU;AAAA,IACd,GAAG;AAAA,IACH,KAAK,SAAS,KAAK,KAAK,CAAC;AAAA,IACzB,OAAO,SAAS,KAAK,OAAO,SAAS;AAAA,EACvC,EAAE,IACJ,CAAC;AAEL,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM,SAAS,MAAM,MAAM,QAAQ;AAAA,IACnC,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,IAChC;AAAA,EACF;AACF;AAEA,SAAS,cACP,OACA,UAGI,CAAC,GACe;AACpB,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,QAAI,CAAC,QAAQ,SAAU,QAAO;AAC9B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,QAAQ,sBAAsB;AAAA,IACvC;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,YAAY;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UACE,kBAAkB,MAAM,QAAQ,KAChC,kBAAkB,MAAS,KAAK;AAAA,QAC9B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,EAAE,KAAK,GAAG,OAAO,QAAQ,sBAAsB,iBAAiB;AAAA,UAChE,EAAE,KAAK,KAAK,OAAO,QAAQ,sBAAsB,iBAAiB;AAAA,QACpE;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,SAAS;AAC1B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,KAAK,SAAS,MAAM,KAAK,EAAE;AAAA,MAC3B,GAAI,iBAAiB,MAAM,OAAO,MAAM,SACpC,CAAC,IACD,EAAE,SAAS,iBAAiB,MAAM,OAAO,EAAE;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,IACN,OAAO,SAAS,MAAM,OAAO,QAAQ,sBAAsB,gBAAgB;AAAA,EAC7E;AACF;AAEA,SAAS,oBACP,OACA,eAC+B;AAC/B,SAAO,cAAc,OAAO,EAAE,oBAAoB,cAAc,CAAC;AACnE;AAEA,SAAS,iBACP,OACA,YACA,cACA,OACW;AACX,QAAM,aAAa,SAAS,aAAa,CAAC,YAAY,eAAe,CAAC;AAEtE,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,OACJ,OAAO,MAAM,SAAS,YAAY,MAAM,KAAK,KAAK,EAAE,SAAS,IACzD,MAAM,OACN;AAEN,QAAM,OAAO;AAAA,IACX,GAAG;AAAA,IACH;AAAA,IACA,IAAI,SAAS,MAAM,IAAI,UAAU;AAAA,IACjC,MAAM,SAAS,MAAM,MAAM,CAAC;AAAA,IAC5B,KAAK,SAAS,MAAM,KAAK,CAAC;AAAA,IAC1B,QAAQ,SAAS,MAAM,QAAQ,sBAAsB;AAAA,EACvD;AAEA,MAAI,SAAS,QAAQ;AACnB,UAAM,cAA6B;AAAA,MACjC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,CAAC;AAAA,MAC9B,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,MAChC,SAAS,SAAS,MAAM,SAAS,EAAE;AAAA,MACnC,cAAc,SAAS,MAAM,cAAc,MAAM,aAAa,kBAAkB;AAAA,MAChF,iBAAiB,SAAS,MAAM,iBAAiB,MAAM,QAAQ;AAAA,MAC/D,MAAM,cAAc,MAAM,IAAI;AAAA,MAC9B,UAAU,UAAU,MAAM,UAAU,KAAK;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,SAAS;AACpB,UAAM,QAAQ,SAAS,MAAM,OAAO,CAAC;AACrC,UAAM,SAAS,SAAS,MAAM,QAAQ,CAAC;AACvC,UAAM,eAA+B;AAAA,MACnC,GAAG;AAAA,MACH,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM,SAAS,MAAM,MAAM,EAAE;AAAA,MAC7B,SAAS,OAAO,MAAM,SAAS,CAAC,OAAO,MAAM,CAAC;AAAA,MAC9C,MAAM,cAAc,MAAM,MAAM;AAAA,QAC9B,oBAAoB;AAAA,QACpB,UAAU;AAAA,MACZ,CAAC;AAAA,MACD,YAAY,UAAU,MAAM,YAAY,yBAAyB;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,QAAQ;AACnB,UAAM,cAA6B;AAAA,MACjC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,kBAAkB;AAAA,MAC/C,OAAO,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AAAA,MACjC,KAAK,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AAAA,MAC7B,QAAQ,aAAa,MAAM,MAAM;AAAA,MACjC,OAAO,SAAS,MAAM,OAAO,SAAS;AAAA,MACtC,OAAO,SAAS,MAAM,OAAO,kBAAkB;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,SAAS;AACpB,UAAM,eAA+B;AAAA,MACnC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,CAAC;AAAA,MAC9B,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,MAChC,KAAK,SAAS,MAAM,KAAK,EAAE;AAAA,MAC3B,YAAY,UAAU,MAAM,YAAY,yBAAyB;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,OAAgB,OAAe,OAAyB;AAC9E,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,WAAO;AAAA,MACL,IAAI,SAAS,QAAQ,CAAC;AAAA,MACtB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAEA,QAAM,UAAU,OAAO,MAAM,SAAS,WAAW,MAAM,KAAK,KAAK,IAAI;AACrE,QAAM,iBACJ,WAAW,sBAAsB,QAAQ,YAAY,CAAC,IAClD,sBAAsB,QAAQ,YAAY,CAAC,IAC3C,WAAW;AAEjB,QAAM,iBAAiB,MAAM,QAAQ,MAAM,QAAQ,IAAI,MAAM,WAAW,CAAC;AACzE,QAAM,WAAW,eAAe;AAAA,IAAI,CAAC,SAAS,iBAC5C,iBAAiB,SAAS,OAAO,cAAc,KAAK;AAAA,EACtD;AAEA,QAAM,aAAa,oBAAoB,MAAM,YAAY,MAAM,eAAe;AAE9E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,SAAS,MAAM,IAAI,SAAS,QAAQ,CAAC,EAAE;AAAA,IAC3C,MAAM;AAAA,IACN,QAAQ,SAAS,MAAM,QAAQ,oBAAoB;AAAA,IACnD;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,OAAoC;AACpE,QAAM,SAASC,YAAW,KAAK;AAE/B,MAAI,CAACD,UAAS,MAAM,GAAG;AACrB,WAAO;AAAA,MACL,eAAe;AAAA,MACf,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO,eAAe,MAAS;AAAA,MAC/B,QAAQ,CAAC;AAAA,IACX;AAAA,EACF;AAEA,QAAM,QAAQ,eAAe,OAAO,KAAK;AACzC,QAAM,eAAe,MAAM,QAAQ,OAAO,MAAM,IAAI,OAAO,SAAS,CAAC;AACrE,QAAM,SAAS,aAAa,IAAI,CAAC,OAAO,UAAU,eAAe,OAAO,OAAO,KAAK,CAAC;AAErF,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,eAAe;AAAA,IACf,OAAO,SAAS,OAAO,OAAO,aAAa;AAAA,IAC3C,OAAO,SAAS,OAAO,OAAO,aAAa;AAAA,IAC3C,QAAQ,SAAS,OAAO,QAAQ,cAAc;AAAA,IAC9C;AAAA,IACA;AAAA,EACF;AAEA,SAAQ,WAA6B;AAErC,SAAO;AACT;;;AChWA,iBAAsC;;;ACAtC;AAAA,EACE,SAAW;AAAA,EACX,KAAO;AAAA,EACP,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,UAAY;AAAA,IACV;AAAA,EACF;AAAA,EACA,YAAc;AAAA,IACZ,eAAiB;AAAA,MACf,OAAS;AAAA,IACX;AAAA,IACA,SAAW;AAAA,MACT,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,kBAAoB;AAAA,IACtB;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,kBAAoB;AAAA,IACtB;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EACA,sBAAwB;AAAA,EACxB,aAAe;AAAA,IACb,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,GAAK;AAAA,UACH,MAAQ;AAAA,QACV;AAAA,QACA,GAAK;AAAA,UACH,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,UAAY;AAAA,MACZ,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,UAAY;AAAA,MACZ,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,SAAW;AAAA,UACT,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,WAAa;AAAA,UACX,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,MAAQ;AAAA,UACN,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,UAAY;AAAA,UACV,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,OAAS;AAAA,QACP;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,cAAgB;AAAA,gBACd,MAAQ;AAAA,cACV;AAAA,cACA,iBAAmB;AAAA,gBACjB,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,gBAAkB;AAAA,gBAChB,MAAQ;AAAA,cACV;AAAA,cACA,UAAY;AAAA,gBACV,MAAQ;AAAA,cACV;AAAA,cACA,UAAY;AAAA,gBACV,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,gBACb,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,KAAO;AAAA,gBACL,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,KAAO;AAAA,gBACL,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,WAAa;AAAA,gBACX,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,eAAiB;AAAA,gBACf,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,iBAAmB;AAAA,MACjB,MAAQ;AAAA,IACV;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,EACF;AACF;;;ADrrBA,IAAM,MAAM,IAAI,WAAAE,QAAI;AAAA,EAClB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,iBAAiB;AACnB,CAAC;AAED,IAAM,aAAa,IAAI,QAAQ,cAAQ;AAEvC,SAAS,SAAS,OAA2C;AAC3D,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,MAAM,gBAAgB;AAAA,IAC5B,SAAS,MAAM,WAAW;AAAA,IAC1B,SAAS,MAAM;AAAA,IACf,QACE,MAAM,UAAU,OAAO,MAAM,WAAW,WACnC,MAAM,SACP;AAAA,EACR;AACF;AAEO,SAAS,iBAAiB,OAAiC;AAChE,QAAM,QAAQ,WAAW,KAAK;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,UAAU,WAAW,UAAU,CAAC,GAAG,IAAI,QAAQ;AACrD,UAAM,IAAI,sBAAsB,MAAM;AAAA,EACxC;AAEA,SAAO;AACT;;;AE7BO,SAAS,cAAc,OAAsC;AAClE,QAAM,WAAW,gBAAgB,KAAK;AACtC,QAAM,YAAY,iBAAiB,QAAQ;AAC3C,SAAO,kBAAkB,SAAS;AACpC;;;ACTO,IAAM,oBAAoB;","names":["isRecord","cloneValue","Ajv"]}
1
+ {"version":3,"sources":["../index.ts","../versions/v1/defaults.ts","../runtime/errors.ts","../runtime/migrate.ts","../runtime/normalize.ts","../runtime/validate.ts","../versions/v1/schema.json","../runtime/parse.ts","../versions/v1/types.ts"],"sourcesContent":["export { parseDocument } from './runtime/parse'\nexport { migrateDocument } from './runtime/migrate'\nexport { validateDocument } from './runtime/validate'\nexport { normalizeDocument } from './runtime/normalize'\n\nexport {\n SchemaValidationError,\n UnsupportedSchemaVersionError\n} from './runtime/errors'\n\nexport {\n DEFAULT_SCHEMA_VERSION,\n DEFAULT_TITLE,\n DEFAULT_WIDTH,\n DEFAULT_HEIGHT,\n DEFAULT_THEME,\n DEFAULT_THEME_SHADOW,\n DEFAULT_THEME_OUTLINE,\n DEFAULT_SLIDE_TYPE,\n DEFAULT_SLIDE_REMARK,\n V1_DEFAULTS\n} from './versions/v1/defaults'\n\nexport { V1_SCHEMA_VERSION } from './versions/v1/types'\n\nexport type {\n PresentationDocument,\n PresentationDocumentInput,\n V1Document,\n V1DocumentInput,\n V1Element,\n V1ElementInput,\n V1Fill,\n V1FillInput,\n V1Gradient,\n V1ImageElement,\n V1LineElement,\n V1Outline,\n V1SchemaVersion,\n V1Shadow,\n V1ShapeElement,\n V1Slide,\n V1SlideBackground,\n V1SlideInput,\n V1TextElement,\n V1Theme,\n V1ThemeInput\n} from './versions/v1/types'\nexport * from './types/fallback'\n\nexport type { SchemaValidationIssue } from './runtime/errors'\n","import type {\n V1Document,\n V1Outline,\n V1SchemaVersion,\n V1Shadow,\n V1Theme\n} from './types'\n\nexport const DEFAULT_SCHEMA_VERSION: V1SchemaVersion = '1.0.0'\nexport const DEFAULT_TITLE = '未命名演示文稿'\nexport const DEFAULT_WIDTH = 1000\nexport const DEFAULT_HEIGHT = 562.5\n\nexport const DEFAULT_THEME_SHADOW: V1Shadow = {\n h: 3,\n v: 3,\n blur: 2,\n color: '#808080'\n}\n\nexport const DEFAULT_THEME_OUTLINE: V1Outline = {\n width: 2,\n color: '#525252',\n style: 'solid'\n}\n\nexport const DEFAULT_THEME: V1Theme = {\n themeColors: [],\n fontColor: '#333',\n fontName: '',\n backgroundColor: '#fff',\n shadow: DEFAULT_THEME_SHADOW,\n outline: DEFAULT_THEME_OUTLINE\n}\n\nexport const DEFAULT_SLIDE_TYPE = 'content'\nexport const DEFAULT_SLIDE_REMARK = ''\n\nexport const DEFAULT_TEXT_COLOR = '#333'\nexport const DEFAULT_ELEMENT_ROTATE = 0\nexport const DEFAULT_IMAGE_FIXED_RATIO = true\nexport const DEFAULT_SHAPE_FIXED_RATIO = false\nexport const DEFAULT_LINE_STYLE = 'solid'\nexport const DEFAULT_LINE_WIDTH = 2\n\nexport const LEGACY_SLIDE_TYPE_MAP: Record<string, string> = {\n agenda: 'contents',\n section: 'transition',\n ending: 'end'\n}\n\nexport const V1_DEFAULTS: Pick<\n V1Document,\n 'schemaVersion' | 'title' | 'width' | 'height'\n> & {\n theme: V1Theme\n} = {\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: DEFAULT_TITLE,\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n theme: DEFAULT_THEME\n}\n","export type SchemaValidationIssue = {\n code: string\n path: string\n message: string\n keyword?: string\n params?: Record<string, unknown>\n}\n\nexport class SchemaValidationError extends Error {\n readonly issues: SchemaValidationIssue[]\n\n constructor(issues: SchemaValidationIssue[], message = 'Schema validation failed') {\n super(message)\n this.name = 'SchemaValidationError'\n this.issues = issues\n }\n}\n\nexport class UnsupportedSchemaVersionError extends Error {\n readonly code = 'UNSUPPORTED_SCHEMA_VERSION'\n readonly supportedVersion: string\n readonly receivedVersion?: string\n\n constructor(receivedVersion: unknown, supportedVersion: string) {\n const received =\n receivedVersion === undefined || receivedVersion === null\n ? undefined\n : String(receivedVersion)\n\n super(\n received\n ? `Unsupported schema version: ${received}. Supported version: ${supportedVersion}.`\n : `Unsupported schema version. Supported version: ${supportedVersion}.`\n )\n\n this.name = 'UnsupportedSchemaVersionError'\n this.supportedVersion = supportedVersion\n this.receivedVersion = received\n }\n}\n","import {\n DEFAULT_SCHEMA_VERSION,\n LEGACY_SLIDE_TYPE_MAP\n} from '../versions/v1/defaults'\nimport type { V1SchemaVersion } from '../versions/v1/types'\nimport { UnsupportedSchemaVersionError } from './errors'\n\ntype UnknownRecord = Record<string, unknown>\n\nconst V1_VERSION_EQUIVALENTS = new Set(['1', '1.0', '1.0.0'])\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction cloneValue<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n return structuredClone(value)\n }\n return JSON.parse(JSON.stringify(value)) as T\n}\n\nfunction normalizeVersion(value: unknown): V1SchemaVersion | null {\n if (typeof value === 'number' && Number.isFinite(value)) {\n if (value === 1) return DEFAULT_SCHEMA_VERSION\n return null\n }\n\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n if (!trimmed) return null\n if (V1_VERSION_EQUIVALENTS.has(trimmed)) return DEFAULT_SCHEMA_VERSION\n return null\n}\n\nfunction migrateSlideType(type: unknown): unknown {\n if (typeof type !== 'string') return type\n const normalized = type.trim().toLowerCase()\n return LEGACY_SLIDE_TYPE_MAP[normalized] ?? type\n}\n\nfunction toFiniteNumber(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value)) return value\n if (typeof value !== 'string') return undefined\n const trimmed = value.trim()\n if (!trimmed) return undefined\n const numeric = Number.parseFloat(trimmed)\n return Number.isFinite(numeric) ? numeric : undefined\n}\n\nfunction normalizeGradientType(value: unknown): string {\n if (typeof value !== 'string' || !value.trim()) return 'linear'\n return value === 'line' ? 'linear' : value\n}\n\nfunction normalizeGradientStopPosition(value: unknown): number {\n const numeric = toFiniteNumber(value)\n if (numeric === undefined) return 0\n if (typeof value === 'string' && value.trim().endsWith('%')) {\n return numeric\n }\n if (numeric > 1000) return numeric / 1000\n if (numeric > 100) return numeric / 1000\n return numeric\n}\n\nfunction migrateGradient(value: unknown): unknown {\n if (!isRecord(value)) return value\n\n const gradient = cloneValue(value)\n const sourceColors = Array.isArray(gradient.colors) ? gradient.colors : []\n const rotate = toFiniteNumber(gradient.rotate ?? gradient.rot) ?? 0\n\n gradient.type = normalizeGradientType(gradient.type ?? gradient.path)\n gradient.rotate = rotate\n gradient.colors = sourceColors.map((stop) => {\n if (!isRecord(stop)) return stop\n const nextStop = cloneValue(stop)\n nextStop.pos = normalizeGradientStopPosition(nextStop.pos)\n return nextStop\n })\n\n delete gradient.rot\n delete gradient.path\n\n return gradient\n}\n\nfunction migrateFill(\n fill: unknown,\n options: {\n gradient?: unknown\n pattern?: unknown\n } = {}\n): unknown {\n if (isRecord(options.gradient)) {\n return {\n type: 'gradient',\n gradient: migrateGradient(options.gradient)\n }\n }\n\n if (typeof options.pattern === 'string' && options.pattern.trim()) {\n return {\n type: 'image',\n src: options.pattern\n }\n }\n\n if (typeof fill === 'string') {\n if (!fill.trim()) return undefined\n return {\n type: 'solid',\n color: fill\n }\n }\n\n if (!isRecord(fill)) {\n return fill\n }\n\n if (fill.type === 'color' && typeof fill.value === 'string') {\n return {\n type: 'solid',\n color: fill.value\n }\n }\n\n if (isRecord(fill.gradient)) {\n return {\n type: 'gradient',\n gradient: migrateGradient(fill.gradient)\n }\n }\n\n if (fill.type === 'solid' || (fill.type === undefined && typeof fill.color === 'string')) {\n return {\n ...fill,\n type: 'solid',\n color: fill.color\n }\n }\n\n if (fill.type === 'gradient') {\n return {\n type: 'gradient',\n gradient: migrateGradient(fill.gradient ?? fill.value ?? fill)\n }\n }\n\n if (\n fill.type === 'image' ||\n fill.type === 'pattern' ||\n typeof fill.src === 'string' ||\n isRecord(fill.value)\n ) {\n const imageValue = isRecord(fill.value) ? fill.value : undefined\n const src =\n typeof fill.src === 'string'\n ? fill.src\n : typeof imageValue?.picBase64 === 'string'\n ? imageValue.picBase64\n : undefined\n const opacity = toFiniteNumber(fill.opacity ?? imageValue?.opacity)\n\n if (src) {\n return {\n type: 'image',\n src,\n ...(opacity === undefined ? {} : { opacity })\n }\n }\n }\n\n return fill\n}\n\nfunction migrateElement(element: unknown): unknown {\n if (!isRecord(element)) return element\n\n const nextElement = cloneValue(element)\n nextElement.fill = migrateFill(nextElement.fill, {\n gradient: nextElement.gradient,\n pattern: nextElement.pattern\n })\n delete nextElement.gradient\n delete nextElement.pattern\n return nextElement\n}\n\nexport function migrateDocument(\n input: unknown,\n toVersion: V1SchemaVersion = DEFAULT_SCHEMA_VERSION\n): unknown {\n if (!isRecord(input)) return input\n\n const migrated = cloneValue(input) as UnknownRecord\n const incomingVersion = migrated.schemaVersion ?? migrated.version\n\n if (incomingVersion === undefined) {\n migrated.schemaVersion = toVersion\n } else {\n const normalizedVersion = normalizeVersion(incomingVersion)\n if (!normalizedVersion || normalizedVersion !== toVersion) {\n throw new UnsupportedSchemaVersionError(incomingVersion, toVersion)\n }\n migrated.schemaVersion = toVersion\n }\n\n delete migrated.version\n\n if (isRecord(migrated.theme)) {\n const theme = migrated.theme\n if (typeof theme.fontname === 'string' && theme.fontName === undefined) {\n theme.fontName = theme.fontname\n delete theme.fontname\n }\n }\n\n if (Array.isArray(migrated.slides)) {\n migrated.slides = migrated.slides.map((slide) => {\n if (!isRecord(slide)) return slide\n const nextSlide = cloneValue(slide)\n nextSlide.type = migrateSlideType(nextSlide.type)\n nextSlide.background = migrateFill(nextSlide.background)\n if (Array.isArray(nextSlide.elements)) {\n nextSlide.elements = nextSlide.elements.map((element) => migrateElement(element))\n }\n return nextSlide\n })\n }\n\n return migrated\n}\n","import {\n DEFAULT_ELEMENT_ROTATE,\n DEFAULT_HEIGHT,\n DEFAULT_IMAGE_FIXED_RATIO,\n DEFAULT_LINE_STYLE,\n DEFAULT_LINE_WIDTH,\n DEFAULT_SCHEMA_VERSION,\n DEFAULT_SHAPE_FIXED_RATIO,\n DEFAULT_SLIDE_REMARK,\n DEFAULT_SLIDE_TYPE,\n DEFAULT_TEXT_COLOR,\n DEFAULT_THEME,\n DEFAULT_THEME_OUTLINE,\n DEFAULT_THEME_SHADOW,\n DEFAULT_TITLE,\n DEFAULT_WIDTH,\n LEGACY_SLIDE_TYPE_MAP\n} from '../versions/v1/defaults'\nimport type {\n V1Document,\n V1DocumentInput,\n V1Element,\n V1Fill,\n V1Gradient,\n V1ImageElement,\n V1LineElement,\n V1Outline,\n V1Shadow,\n V1ShapeElement,\n V1Slide,\n V1SlideBackground,\n V1TextElement,\n V1Theme\n} from '../versions/v1/types'\n\ntype UnknownRecord = Record<string, unknown>\nconst TRANSPARENT_FILL = 'rgba(255,255,255,0)'\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction cloneValue<T>(value: T): T {\n if (typeof structuredClone === 'function') {\n return structuredClone(value)\n }\n return JSON.parse(JSON.stringify(value)) as T\n}\n\nfunction asString(value: unknown, fallback: string): string {\n return typeof value === 'string' ? value : fallback\n}\n\nfunction asNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback\n}\n\nfunction asOptionalNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined\n}\n\nfunction asBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback\n}\n\nfunction asPair(value: unknown, fallback: [number, number]): [number, number] {\n if (!Array.isArray(value) || value.length < 2) return fallback\n return [asNumber(value[0], fallback[0]), asNumber(value[1], fallback[1])]\n}\n\nfunction asLinePoints(value: unknown): [string, string] {\n if (!Array.isArray(value)) return ['', '']\n const first = typeof value[0] === 'string' ? value[0] : ''\n const second = typeof value[1] === 'string' ? value[1] : ''\n return [first, second]\n}\n\nfunction normalizeShadow(value: unknown): V1Shadow {\n const source = isRecord(value) ? value : {}\n return {\n ...source,\n h: asNumber(source.h, DEFAULT_THEME_SHADOW.h),\n v: asNumber(source.v, DEFAULT_THEME_SHADOW.v),\n blur: asNumber(source.blur, DEFAULT_THEME_SHADOW.blur),\n color: asString(source.color, DEFAULT_THEME_SHADOW.color)\n }\n}\n\nfunction normalizeOutline(value: unknown): V1Outline {\n const source = isRecord(value) ? value : {}\n return {\n ...source,\n width: asNumber(source.width, DEFAULT_THEME_OUTLINE.width),\n color: asString(source.color, DEFAULT_THEME_OUTLINE.color),\n style: asString(source.style, DEFAULT_THEME_OUTLINE.style)\n }\n}\n\nfunction normalizeTheme(value: unknown): V1Theme {\n const source = isRecord(value) ? value : {}\n const themeColors = Array.isArray(source.themeColors)\n ? source.themeColors.filter((item): item is string => typeof item === 'string')\n : DEFAULT_THEME.themeColors.slice()\n\n return {\n ...source,\n themeColors,\n fontColor: asString(source.fontColor, DEFAULT_THEME.fontColor),\n fontName: asString(source.fontName, DEFAULT_THEME.fontName),\n backgroundColor: asString(source.backgroundColor, DEFAULT_THEME.backgroundColor),\n shadow: normalizeShadow(source.shadow),\n outline: normalizeOutline(source.outline)\n }\n}\n\nfunction normalizeGradient(value: unknown): V1Gradient | undefined {\n if (!isRecord(value)) return undefined\n\n const colors = Array.isArray(value.colors)\n ? value.colors\n .filter((stop): stop is UnknownRecord => isRecord(stop))\n .map((stop) => ({\n ...stop,\n pos: asNumber(stop.pos, 0),\n color: asString(stop.color, '#000000')\n }))\n : []\n\n return {\n ...value,\n type: asString(value.type, 'linear'),\n rotate: asNumber(value.rotate, 0),\n colors\n }\n}\n\nfunction normalizeFill(\n value: unknown,\n options: {\n fallbackSolidColor?: string\n required?: boolean\n } = {}\n): V1Fill | undefined {\n if (!isRecord(value)) {\n if (!options.required) return undefined\n return {\n type: 'solid',\n color: options.fallbackSolidColor ?? TRANSPARENT_FILL\n }\n }\n\n if (value.type === 'gradient') {\n return {\n ...value,\n type: 'gradient',\n gradient:\n normalizeGradient(value.gradient) ??\n normalizeGradient(undefined) ?? {\n type: 'linear',\n rotate: 0,\n colors: [\n { pos: 0, color: options.fallbackSolidColor ?? TRANSPARENT_FILL },\n { pos: 100, color: options.fallbackSolidColor ?? TRANSPARENT_FILL }\n ]\n }\n }\n }\n\n if (value.type === 'image') {\n return {\n ...value,\n type: 'image',\n src: asString(value.src, ''),\n ...(asOptionalNumber(value.opacity) === undefined\n ? {}\n : { opacity: asOptionalNumber(value.opacity) })\n }\n }\n\n return {\n ...value,\n type: 'solid',\n color: asString(value.color, options.fallbackSolidColor ?? TRANSPARENT_FILL)\n }\n}\n\nfunction normalizeBackground(\n value: unknown,\n fallbackColor: string\n): V1SlideBackground | undefined {\n return normalizeFill(value, { fallbackSolidColor: fallbackColor })\n}\n\nfunction normalizeElement(\n value: unknown,\n slideIndex: number,\n elementIndex: number,\n theme: V1Theme\n): V1Element {\n const fallbackId = `slide-${slideIndex + 1}-element-${elementIndex + 1}`\n\n if (!isRecord(value)) {\n return {\n type: 'unknown',\n id: fallbackId,\n left: 0,\n top: 0,\n rotate: DEFAULT_ELEMENT_ROTATE\n }\n }\n\n const type =\n typeof value.type === 'string' && value.type.trim().length > 0\n ? value.type\n : 'unknown'\n\n const base = {\n ...value,\n type,\n id: asString(value.id, fallbackId),\n left: asNumber(value.left, 0),\n top: asNumber(value.top, 0),\n rotate: asNumber(value.rotate, DEFAULT_ELEMENT_ROTATE)\n }\n\n if (type === 'text') {\n const textElement: V1TextElement = {\n ...base,\n type: 'text',\n width: asNumber(value.width, 0),\n height: asNumber(value.height, 0),\n content: asString(value.content, ''),\n defaultColor: asString(value.defaultColor, theme.fontColor || DEFAULT_TEXT_COLOR),\n defaultFontName: asString(value.defaultFontName, theme.fontName),\n fill: normalizeFill(value.fill),\n vertical: asBoolean(value.vertical, false)\n }\n return textElement\n }\n\n if (type === 'shape') {\n const width = asNumber(value.width, 0)\n const height = asNumber(value.height, 0)\n const shapeElement: V1ShapeElement = {\n ...base,\n type: 'shape',\n width,\n height,\n path: asString(value.path, ''),\n viewBox: asPair(value.viewBox, [width, height]),\n fill: normalizeFill(value.fill, {\n fallbackSolidColor: TRANSPARENT_FILL,\n required: true\n }) as V1Fill,\n fixedRatio: asBoolean(value.fixedRatio, DEFAULT_SHAPE_FIXED_RATIO)\n }\n return shapeElement\n }\n\n if (type === 'line') {\n const lineElement: V1LineElement = {\n ...base,\n type: 'line',\n width: asNumber(value.width, DEFAULT_LINE_WIDTH),\n start: asPair(value.start, [0, 0]),\n end: asPair(value.end, [0, 0]),\n points: asLinePoints(value.points),\n color: asString(value.color, '#000000'),\n style: asString(value.style, DEFAULT_LINE_STYLE)\n }\n return lineElement\n }\n\n if (type === 'image') {\n const imageElement: V1ImageElement = {\n ...base,\n type: 'image',\n width: asNumber(value.width, 0),\n height: asNumber(value.height, 0),\n src: asString(value.src, ''),\n fixedRatio: asBoolean(value.fixedRatio, DEFAULT_IMAGE_FIXED_RATIO)\n }\n return imageElement\n }\n\n return base\n}\n\nfunction normalizeSlide(value: unknown, index: number, theme: V1Theme): V1Slide {\n if (!isRecord(value)) {\n return {\n id: `slide-${index + 1}`,\n type: DEFAULT_SLIDE_TYPE,\n remark: DEFAULT_SLIDE_REMARK,\n elements: []\n }\n }\n\n const rawType = typeof value.type === 'string' ? value.type.trim() : ''\n const normalizedType =\n rawType && LEGACY_SLIDE_TYPE_MAP[rawType.toLowerCase()]\n ? LEGACY_SLIDE_TYPE_MAP[rawType.toLowerCase()]\n : rawType || DEFAULT_SLIDE_TYPE\n\n const sourceElements = Array.isArray(value.elements) ? value.elements : []\n const elements = sourceElements.map((element, elementIndex) =>\n normalizeElement(element, index, elementIndex, theme)\n )\n\n const background = normalizeBackground(value.background, theme.backgroundColor)\n\n return {\n ...value,\n id: asString(value.id, `slide-${index + 1}`),\n type: normalizedType,\n remark: asString(value.remark, DEFAULT_SLIDE_REMARK),\n background,\n elements\n }\n}\n\nexport function normalizeDocument(input: V1DocumentInput): V1Document {\n const source = cloneValue(input)\n\n if (!isRecord(source)) {\n return {\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: DEFAULT_TITLE,\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n theme: normalizeTheme(undefined),\n slides: []\n }\n }\n\n const theme = normalizeTheme(source.theme)\n const sourceSlides = Array.isArray(source.slides) ? source.slides : []\n const slides = sourceSlides.map((slide, index) => normalizeSlide(slide, index, theme))\n\n const normalized = {\n ...source,\n schemaVersion: DEFAULT_SCHEMA_VERSION,\n title: asString(source.title, DEFAULT_TITLE),\n width: asNumber(source.width, DEFAULT_WIDTH),\n height: asNumber(source.height, DEFAULT_HEIGHT),\n theme,\n slides\n } as V1Document\n\n delete (normalized as UnknownRecord).version\n\n return normalized\n}\n","import Ajv, { type ErrorObject } from 'ajv'\nimport schemaV1 from '../versions/v1/schema.json'\nimport type { V1DocumentInput } from '../versions/v1/types'\nimport { SchemaValidationError, type SchemaValidationIssue } from './errors'\n\nconst ajv = new Ajv({\n allErrors: true,\n strict: false,\n allowUnionTypes: true\n})\n\nconst validateV1 = ajv.compile(schemaV1)\n\nfunction mapError(error: ErrorObject): SchemaValidationIssue {\n return {\n code: 'SCHEMA_VALIDATION_ERROR',\n path: error.instancePath || '/',\n message: error.message ?? 'Invalid value',\n keyword: error.keyword,\n params:\n error.params && typeof error.params === 'object'\n ? (error.params as Record<string, unknown>)\n : undefined\n }\n}\n\nexport function validateDocument(input: unknown): V1DocumentInput {\n const valid = validateV1(input)\n if (!valid) {\n const issues = (validateV1.errors ?? []).map(mapError)\n throw new SchemaValidationError(issues)\n }\n\n return input as V1DocumentInput\n}\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"https://json2pptx.dev/json2pptx-schema/v1\",\n \"title\": \"json2pptx document schema v1\",\n \"type\": \"object\",\n \"required\": [\n \"slides\"\n ],\n \"properties\": {\n \"schemaVersion\": {\n \"const\": \"1.0.0\"\n },\n \"version\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"height\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"theme\": {\n \"$ref\": \"#/definitions/theme\"\n },\n \"slides\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/slide\"\n }\n }\n },\n \"additionalProperties\": true,\n \"definitions\": {\n \"shadow\": {\n \"type\": \"object\",\n \"required\": [\n \"h\",\n \"v\",\n \"blur\",\n \"color\"\n ],\n \"properties\": {\n \"h\": {\n \"type\": \"number\"\n },\n \"v\": {\n \"type\": \"number\"\n },\n \"blur\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"outline\": {\n \"type\": \"object\",\n \"required\": [\n \"width\",\n \"color\",\n \"style\"\n ],\n \"properties\": {\n \"width\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradientStop\": {\n \"type\": \"object\",\n \"required\": [\n \"pos\",\n \"color\"\n ],\n \"properties\": {\n \"pos\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradient\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"rotate\",\n \"colors\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"rotate\": {\n \"type\": \"number\"\n },\n \"colors\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": {\n \"$ref\": \"#/definitions/gradientStop\"\n }\n }\n },\n \"additionalProperties\": true\n },\n \"solidFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"color\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"solid\"\n },\n \"color\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"gradientFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"gradient\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"gradient\"\n },\n \"gradient\": {\n \"$ref\": \"#/definitions/gradient\"\n }\n },\n \"additionalProperties\": true\n },\n \"imageFill\": {\n \"type\": \"object\",\n \"required\": [\n \"type\",\n \"src\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n },\n \"src\": {\n \"type\": \"string\"\n },\n \"opacity\": {\n \"type\": \"number\"\n }\n },\n \"additionalProperties\": true\n },\n \"fill\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/definitions/solidFill\"\n },\n {\n \"$ref\": \"#/definitions/gradientFill\"\n },\n {\n \"$ref\": \"#/definitions/imageFill\"\n }\n ]\n },\n \"theme\": {\n \"type\": \"object\",\n \"properties\": {\n \"themeColors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"fontColor\": {\n \"type\": \"string\"\n },\n \"fontName\": {\n \"type\": \"string\"\n },\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"shadow\": {\n \"$ref\": \"#/definitions/shadow\"\n },\n \"outline\": {\n \"$ref\": \"#/definitions/outline\"\n }\n },\n \"additionalProperties\": true\n },\n \"pair\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"linePoints\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"shapeText\": {\n \"type\": \"object\",\n \"required\": [\n \"content\"\n ],\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"defaultColor\": {\n \"type\": \"string\"\n },\n \"defaultFontName\": {\n \"type\": \"string\"\n },\n \"align\": {\n \"type\": \"string\"\n },\n \"lineHeight\": {\n \"type\": \"number\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"clip\": {\n \"type\": \"object\",\n \"required\": [\n \"shape\",\n \"range\"\n ],\n \"properties\": {\n \"shape\": {\n \"type\": \"string\"\n },\n \"range\": {\n \"type\": \"array\",\n \"minItems\": 2,\n \"maxItems\": 2,\n \"items\": {\n \"$ref\": \"#/definitions/pair\"\n }\n }\n },\n \"additionalProperties\": true\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"opacity\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"grayscale\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"blur\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"sepia\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"saturate\": {\n \"oneOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n }\n ]\n }\n },\n \"additionalProperties\": true\n },\n \"tableCellStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"fontname\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"align\": {\n \"type\": \"string\"\n },\n \"fontsize\": {\n \"type\": \"string\"\n },\n \"backcolor\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": true\n },\n \"tableCell\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"colspan\": {\n \"type\": \"number\"\n },\n \"rowspan\": {\n \"type\": \"number\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"$ref\": \"#/definitions/tableCellStyle\"\n }\n },\n \"additionalProperties\": true\n },\n \"element\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"groupId\": {\n \"type\": \"string\"\n },\n \"left\": {\n \"type\": \"number\"\n },\n \"top\": {\n \"type\": \"number\"\n },\n \"width\": {\n \"type\": \"number\"\n },\n \"height\": {\n \"type\": \"number\"\n },\n \"rotate\": {\n \"type\": \"number\"\n },\n \"lock\": {\n \"type\": \"boolean\"\n },\n \"opacity\": {\n \"type\": \"number\"\n },\n \"flipH\": {\n \"type\": \"boolean\"\n },\n \"flipV\": {\n \"type\": \"boolean\"\n },\n \"shadow\": {\n \"$ref\": \"#/definitions/shadow\"\n },\n \"outline\": {\n \"$ref\": \"#/definitions/outline\"\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"text\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"content\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"content\": {\n \"type\": \"string\"\n },\n \"defaultColor\": {\n \"type\": \"string\"\n },\n \"defaultFontName\": {\n \"type\": \"string\"\n },\n \"fill\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"lineHeight\": {\n \"type\": \"number\"\n },\n \"paragraphSpace\": {\n \"type\": \"number\"\n },\n \"textType\": {\n \"type\": \"string\"\n },\n \"vertical\": {\n \"type\": \"boolean\"\n },\n \"wordSpace\": {\n \"type\": \"number\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"shape\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"path\",\n \"viewBox\",\n \"fill\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"viewBox\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"fill\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"fixedRatio\": {\n \"type\": \"boolean\"\n },\n \"keypoints\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"pathFormula\": {\n \"type\": \"string\"\n },\n \"special\": {\n \"type\": \"boolean\"\n },\n \"text\": {\n \"$ref\": \"#/definitions/shapeText\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"line\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"start\",\n \"end\",\n \"points\",\n \"color\",\n \"width\",\n \"left\",\n \"top\"\n ],\n \"properties\": {\n \"start\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"end\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"points\": {\n \"$ref\": \"#/definitions/linePoints\"\n },\n \"broken\": {\n \"$ref\": \"#/definitions/pair\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"src\",\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"fixedRatio\": {\n \"type\": \"boolean\"\n },\n \"clip\": {\n \"$ref\": \"#/definitions/clip\"\n },\n \"filters\": {\n \"$ref\": \"#/definitions/filters\"\n },\n \"imageType\": {\n \"type\": \"string\"\n },\n \"radius\": {\n \"type\": \"number\"\n },\n \"colorMask\": {\n \"type\": \"string\"\n }\n }\n }\n },\n {\n \"if\": {\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"const\": \"table\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"left\",\n \"top\",\n \"width\",\n \"height\"\n ],\n \"properties\": {\n \"colWidths\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"data\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/tableCell\"\n }\n }\n },\n \"cellMinHeight\": {\n \"type\": \"number\"\n }\n }\n }\n }\n ],\n \"additionalProperties\": true\n },\n \"slideBackground\": {\n \"$ref\": \"#/definitions/fill\"\n },\n \"slide\": {\n \"type\": \"object\",\n \"required\": [\n \"elements\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"remark\": {\n \"type\": \"string\"\n },\n \"background\": {\n \"$ref\": \"#/definitions/slideBackground\"\n },\n \"elements\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/element\"\n }\n }\n },\n \"additionalProperties\": true\n }\n }\n}\n","import type { PresentationDocument } from '../versions/v1/types'\nimport { migrateDocument } from './migrate'\nimport { normalizeDocument } from './normalize'\nimport { validateDocument } from './validate'\n\nexport function parseDocument(input: unknown): PresentationDocument {\n const migrated = migrateDocument(input)\n const validated = validateDocument(migrated)\n return normalizeDocument(validated)\n}\n","export const V1_SCHEMA_VERSION = '1.0.0' as const\n\nexport type V1SchemaVersion = typeof V1_SCHEMA_VERSION\n\nexport type V1Outline = {\n width: number\n color: string\n style: string\n [key: string]: unknown\n}\n\nexport type V1Shadow = {\n h: number\n v: number\n blur: number\n color: string\n [key: string]: unknown\n}\n\nexport type V1GradientStop = {\n pos: number\n color: string\n [key: string]: unknown\n}\n\nexport type V1Gradient = {\n type: string\n rotate: number\n colors: V1GradientStop[]\n [key: string]: unknown\n}\n\nexport type V1SolidFillInput = {\n type?: 'solid'\n color?: string\n [key: string]: unknown\n}\n\nexport type V1SolidFill = {\n type: 'solid'\n color: string\n [key: string]: unknown\n}\n\nexport type V1GradientFillInput = {\n type: 'gradient'\n gradient?: V1Gradient\n [key: string]: unknown\n}\n\nexport type V1GradientFill = {\n type: 'gradient'\n gradient: V1Gradient\n [key: string]: unknown\n}\n\nexport type V1ImageFillInput = {\n type: 'image'\n src?: string\n opacity?: number\n [key: string]: unknown\n}\n\nexport type V1ImageFill = {\n type: 'image'\n src: string\n opacity?: number\n [key: string]: unknown\n}\n\nexport type V1FillInput = V1SolidFillInput | V1GradientFillInput | V1ImageFillInput\n\nexport type V1Fill = V1SolidFill | V1GradientFill | V1ImageFill\n\nexport type V1ThemeInput = {\n themeColors?: string[]\n fontColor?: string\n fontName?: string\n backgroundColor?: string\n shadow?: Partial<V1Shadow>\n outline?: Partial<V1Outline>\n [key: string]: unknown\n}\n\nexport type V1Theme = {\n themeColors: string[]\n fontColor: string\n fontName: string\n backgroundColor: string\n shadow: V1Shadow\n outline: V1Outline\n [key: string]: unknown\n}\n\nexport type V1SlideBackgroundInput = V1FillInput\n\nexport type V1SlideBackground = V1Fill\n\nexport type V1ElementBaseInput<T extends string = string> = {\n type: T\n id?: string\n groupId?: string\n left?: number\n top?: number\n width?: number\n height?: number\n rotate?: number\n lock?: boolean\n opacity?: number\n flipH?: boolean\n flipV?: boolean\n outline?: Partial<V1Outline>\n shadow?: Partial<V1Shadow>\n [key: string]: unknown\n}\n\nexport type V1ElementBase<T extends string = string> = V1ElementBaseInput<T> & {\n id: string\n left: number\n top: number\n rotate: number\n}\n\nexport type V1ShapeText = {\n content: string\n defaultColor?: string\n defaultFontName?: string\n align?: string\n lineHeight?: number\n type?: string\n [key: string]: unknown\n}\n\nexport type V1TextElementInput = V1ElementBaseInput<'text'> & {\n content?: string\n defaultColor?: string\n defaultFontName?: string\n fill?: V1FillInput\n lineHeight?: number\n paragraphSpace?: number\n textType?: string\n vertical?: boolean\n wordSpace?: number\n}\n\nexport type V1TextElement = V1ElementBase<'text'> & {\n width: number\n height: number\n content: string\n defaultColor: string\n defaultFontName: string\n fill?: V1Fill\n lineHeight?: number\n paragraphSpace?: number\n textType?: string\n vertical: boolean\n wordSpace?: number\n}\n\nexport type V1ShapeElementInput = V1ElementBaseInput<'shape'> & {\n path?: string\n viewBox?: [number, number]\n fill?: V1FillInput\n fixedRatio?: boolean\n keypoints?: number[]\n pathFormula?: string\n special?: boolean\n text?: V1ShapeText\n}\n\nexport type V1ShapeElement = V1ElementBase<'shape'> & {\n width: number\n height: number\n path: string\n viewBox: [number, number]\n fill: V1Fill\n fixedRatio: boolean\n keypoints?: number[]\n pathFormula?: string\n special?: boolean\n text?: V1ShapeText\n}\n\nexport type V1LineElementInput = V1ElementBaseInput<'line'> & {\n start?: [number, number]\n end?: [number, number]\n points?: string[]\n broken?: [number, number]\n color?: string\n style?: string\n width?: number\n}\n\nexport type V1LineElement = V1ElementBase<'line'> & {\n start: [number, number]\n end: [number, number]\n points: [string, string]\n broken?: [number, number]\n color: string\n style: string\n width: number\n}\n\nexport type V1ImageClip = {\n shape: string\n range: [[number, number], [number, number]]\n [key: string]: unknown\n}\n\nexport type V1ImageFilters = {\n opacity?: string | number\n grayscale?: string | number\n blur?: string | number\n sepia?: string | number\n saturate?: string | number\n [key: string]: unknown\n}\n\nexport type V1ImageElementInput = V1ElementBaseInput<'image'> & {\n src?: string\n fixedRatio?: boolean\n clip?: V1ImageClip\n filters?: V1ImageFilters\n imageType?: string\n radius?: number\n colorMask?: string\n}\n\nexport type V1ImageElement = V1ElementBase<'image'> & {\n width: number\n height: number\n src: string\n fixedRatio: boolean\n clip?: V1ImageClip\n filters?: V1ImageFilters\n imageType?: string\n radius?: number\n colorMask?: string\n}\n\nexport type V1UnknownElementInput = V1ElementBaseInput<string>\n\nexport type V1UnknownElement = V1ElementBase<string>\n\nexport type V1ElementInput =\n | V1TextElementInput\n | V1ShapeElementInput\n | V1LineElementInput\n | V1ImageElementInput\n | V1UnknownElementInput\n\nexport type V1Element =\n | V1TextElement\n | V1ShapeElement\n | V1LineElement\n | V1ImageElement\n | V1UnknownElement\n\nexport type V1SlideInput = {\n id?: string\n type?: string\n remark?: string\n background?: V1SlideBackgroundInput\n elements?: V1ElementInput[]\n [key: string]: unknown\n}\n\nexport type V1Slide = {\n id: string\n type: string\n remark: string\n background?: V1SlideBackground\n elements: V1Element[]\n [key: string]: unknown\n}\n\nexport type V1DocumentInput = {\n schemaVersion?: string\n version?: string | number\n title?: string\n width?: number\n height?: number\n theme?: V1ThemeInput\n slides: V1SlideInput[]\n [key: string]: unknown\n}\n\nexport type V1Document = {\n schemaVersion: V1SchemaVersion\n title: string\n width: number\n height: number\n theme: V1Theme\n slides: V1Slide[]\n [key: string]: unknown\n}\n\nexport type PresentationDocumentInput = V1DocumentInput\n\nexport type PresentationDocument = V1Document\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACQO,IAAM,yBAA0C;AAChD,IAAM,gBAAgB;AACtB,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AAEvB,IAAM,uBAAiC;AAAA,EAC5C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM;AAAA,EACN,OAAO;AACT;AAEO,IAAM,wBAAmC;AAAA,EAC9C,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT;AAEO,IAAM,gBAAyB;AAAA,EACpC,aAAa,CAAC;AAAA,EACd,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,IAAM,qBAAqB;AAC3B,IAAM,uBAAuB;AAE7B,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAC/B,IAAM,4BAA4B;AAClC,IAAM,4BAA4B;AAClC,IAAM,qBAAqB;AAC3B,IAAM,qBAAqB;AAE3B,IAAM,wBAAgD;AAAA,EAC3D,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AACV;AAEO,IAAM,cAKT;AAAA,EACF,eAAe;AAAA,EACf,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;;;ACtDO,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAG/C,YAAY,QAAiC,UAAU,4BAA4B;AACjF,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;AAEO,IAAM,gCAAN,cAA4C,MAAM;AAAA,EAKvD,YAAY,iBAA0B,kBAA0B;AAC9D,UAAM,WACJ,oBAAoB,UAAa,oBAAoB,OACjD,SACA,OAAO,eAAe;AAE5B;AAAA,MACE,WACI,+BAA+B,QAAQ,wBAAwB,gBAAgB,MAC/E,kDAAkD,gBAAgB;AAAA,IACxE;AAdF,SAAS,OAAO;AAgBd,SAAK,OAAO;AACZ,SAAK,mBAAmB;AACxB,SAAK,kBAAkB;AAAA,EACzB;AACF;;;AC9BA,IAAM,yBAAyB,oBAAI,IAAI,CAAC,KAAK,OAAO,OAAO,CAAC;AAE5D,SAAS,SAAS,OAAwC;AACxD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,WAAc,OAAa;AAClC,MAAI,OAAO,oBAAoB,YAAY;AACzC,WAAO,gBAAgB,KAAK;AAAA,EAC9B;AACA,SAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;AAEA,SAAS,iBAAiB,OAAwC;AAChE,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AACvD,QAAI,UAAU,EAAG,QAAO;AACxB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,uBAAuB,IAAI,OAAO,EAAG,QAAO;AAChD,SAAO;AACT;AAEA,SAAS,iBAAiB,MAAwB;AAChD,MAAI,OAAO,SAAS,SAAU,QAAO;AACrC,QAAM,aAAa,KAAK,KAAK,EAAE,YAAY;AAC3C,SAAO,sBAAsB,UAAU,KAAK;AAC9C;AAEA,SAAS,eAAe,OAAoC;AAC1D,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,EAAG,QAAO;AAChE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,UAAU,OAAO,WAAW,OAAO;AACzC,SAAO,OAAO,SAAS,OAAO,IAAI,UAAU;AAC9C;AAEA,SAAS,sBAAsB,OAAwB;AACrD,MAAI,OAAO,UAAU,YAAY,CAAC,MAAM,KAAK,EAAG,QAAO;AACvD,SAAO,UAAU,SAAS,WAAW;AACvC;AAEA,SAAS,8BAA8B,OAAwB;AAC7D,QAAM,UAAU,eAAe,KAAK;AACpC,MAAI,YAAY,OAAW,QAAO;AAClC,MAAI,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS,GAAG,GAAG;AAC3D,WAAO;AAAA,EACT;AACA,MAAI,UAAU,IAAM,QAAO,UAAU;AACrC,MAAI,UAAU,IAAK,QAAO,UAAU;AACpC,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAyB;AAChD,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,WAAW,WAAW,KAAK;AACjC,QAAM,eAAe,MAAM,QAAQ,SAAS,MAAM,IAAI,SAAS,SAAS,CAAC;AACzE,QAAM,SAAS,eAAe,SAAS,UAAU,SAAS,GAAG,KAAK;AAElE,WAAS,OAAO,sBAAsB,SAAS,QAAQ,SAAS,IAAI;AACpE,WAAS,SAAS;AAClB,WAAS,SAAS,aAAa,IAAI,CAAC,SAAS;AAC3C,QAAI,CAAC,SAAS,IAAI,EAAG,QAAO;AAC5B,UAAM,WAAW,WAAW,IAAI;AAChC,aAAS,MAAM,8BAA8B,SAAS,GAAG;AACzD,WAAO;AAAA,EACT,CAAC;AAED,SAAO,SAAS;AAChB,SAAO,SAAS;AAEhB,SAAO;AACT;AAEA,SAAS,YACP,MACA,UAGI,CAAC,GACI;AACT,MAAI,SAAS,QAAQ,QAAQ,GAAG;AAC9B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,QAAQ,QAAQ;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,KAAK,GAAG;AACjE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI,CAAC,KAAK,KAAK,EAAG,QAAO;AACzB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,CAAC,SAAS,IAAI,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,MAAI,KAAK,SAAS,WAAW,OAAO,KAAK,UAAU,UAAU;AAC3D,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,QAAQ,GAAG;AAC3B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,KAAK,QAAQ;AAAA,IACzC;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,WAAY,KAAK,SAAS,UAAa,OAAO,KAAK,UAAU,UAAW;AACxF,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,YAAY;AAC5B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,gBAAgB,KAAK,YAAY,KAAK,SAAS,IAAI;AAAA,IAC/D;AAAA,EACF;AAEA,MACE,KAAK,SAAS,WACd,KAAK,SAAS,aACd,OAAO,KAAK,QAAQ,YACpB,SAAS,KAAK,KAAK,GACnB;AACA,UAAM,aAAa,SAAS,KAAK,KAAK,IAAI,KAAK,QAAQ;AACvD,UAAM,MACJ,OAAO,KAAK,QAAQ,WAChB,KAAK,MACL,OAAO,YAAY,cAAc,WACjC,WAAW,YACX;AACN,UAAM,UAAU,eAAe,KAAK,WAAW,YAAY,OAAO;AAElE,QAAI,KAAK;AACP,aAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,GAAI,YAAY,SAAY,CAAC,IAAI,EAAE,QAAQ;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,SAA2B;AACjD,MAAI,CAAC,SAAS,OAAO,EAAG,QAAO;AAE/B,QAAM,cAAc,WAAW,OAAO;AACtC,cAAY,OAAO,YAAY,YAAY,MAAM;AAAA,IAC/C,UAAU,YAAY;AAAA,IACtB,SAAS,YAAY;AAAA,EACvB,CAAC;AACD,SAAO,YAAY;AACnB,SAAO,YAAY;AACnB,SAAO;AACT;AAEO,SAAS,gBACd,OACA,YAA6B,wBACpB;AACT,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,WAAW,WAAW,KAAK;AACjC,QAAM,kBAAkB,SAAS,iBAAiB,SAAS;AAE3D,MAAI,oBAAoB,QAAW;AACjC,aAAS,gBAAgB;AAAA,EAC3B,OAAO;AACL,UAAM,oBAAoB,iBAAiB,eAAe;AAC1D,QAAI,CAAC,qBAAqB,sBAAsB,WAAW;AACzD,YAAM,IAAI,8BAA8B,iBAAiB,SAAS;AAAA,IACpE;AACA,aAAS,gBAAgB;AAAA,EAC3B;AAEA,SAAO,SAAS;AAEhB,MAAI,SAAS,SAAS,KAAK,GAAG;AAC5B,UAAM,QAAQ,SAAS;AACvB,QAAI,OAAO,MAAM,aAAa,YAAY,MAAM,aAAa,QAAW;AACtE,YAAM,WAAW,MAAM;AACvB,aAAO,MAAM;AAAA,IACf;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,SAAS,MAAM,GAAG;AAClC,aAAS,SAAS,SAAS,OAAO,IAAI,CAAC,UAAU;AAC/C,UAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,YAAM,YAAY,WAAW,KAAK;AAClC,gBAAU,OAAO,iBAAiB,UAAU,IAAI;AAChD,gBAAU,aAAa,YAAY,UAAU,UAAU;AACvD,UAAI,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACrC,kBAAU,WAAW,UAAU,SAAS,IAAI,CAAC,YAAY,eAAe,OAAO,CAAC;AAAA,MAClF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO;AACT;;;ACrMA,IAAM,mBAAmB;AAEzB,SAASA,UAAS,OAAwC;AACxD,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAASC,YAAc,OAAa;AAClC,MAAI,OAAO,oBAAoB,YAAY;AACzC,WAAO,gBAAgB,KAAK;AAAA,EAC9B;AACA,SAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;AAEA,SAAS,SAAS,OAAgB,UAA0B;AAC1D,SAAO,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAEA,SAAS,SAAS,OAAgB,UAA0B;AAC1D,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAAI,QAAQ;AACvE;AAEA,SAAS,iBAAiB,OAAoC;AAC5D,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,IAAI,QAAQ;AACvE;AAEA,SAAS,UAAU,OAAgB,UAA4B;AAC7D,SAAO,OAAO,UAAU,YAAY,QAAQ;AAC9C;AAEA,SAAS,OAAO,OAAgB,UAA8C;AAC5E,MAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,EAAG,QAAO;AACtD,SAAO,CAAC,SAAS,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1E;AAEA,SAAS,aAAa,OAAkC;AACtD,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC,IAAI,EAAE;AACzC,QAAM,QAAQ,OAAO,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,IAAI;AACxD,QAAM,SAAS,OAAO,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,IAAI;AACzD,SAAO,CAAC,OAAO,MAAM;AACvB;AAEA,SAAS,gBAAgB,OAA0B;AACjD,QAAM,SAASD,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,SAAS,OAAO,GAAG,qBAAqB,CAAC;AAAA,IAC5C,GAAG,SAAS,OAAO,GAAG,qBAAqB,CAAC;AAAA,IAC5C,MAAM,SAAS,OAAO,MAAM,qBAAqB,IAAI;AAAA,IACrD,OAAO,SAAS,OAAO,OAAO,qBAAqB,KAAK;AAAA,EAC1D;AACF;AAEA,SAAS,iBAAiB,OAA2B;AACnD,QAAM,SAASA,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,IACzD,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,IACzD,OAAO,SAAS,OAAO,OAAO,sBAAsB,KAAK;AAAA,EAC3D;AACF;AAEA,SAAS,eAAe,OAAyB;AAC/C,QAAM,SAASA,UAAS,KAAK,IAAI,QAAQ,CAAC;AAC1C,QAAM,cAAc,MAAM,QAAQ,OAAO,WAAW,IAChD,OAAO,YAAY,OAAO,CAAC,SAAyB,OAAO,SAAS,QAAQ,IAC5E,cAAc,YAAY,MAAM;AAEpC,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,WAAW,SAAS,OAAO,WAAW,cAAc,SAAS;AAAA,IAC7D,UAAU,SAAS,OAAO,UAAU,cAAc,QAAQ;AAAA,IAC1D,iBAAiB,SAAS,OAAO,iBAAiB,cAAc,eAAe;AAAA,IAC/E,QAAQ,gBAAgB,OAAO,MAAM;AAAA,IACrC,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC1C;AACF;AAEA,SAAS,kBAAkB,OAAwC;AACjE,MAAI,CAACA,UAAS,KAAK,EAAG,QAAO;AAE7B,QAAM,SAAS,MAAM,QAAQ,MAAM,MAAM,IACrC,MAAM,OACH,OAAO,CAAC,SAAgCA,UAAS,IAAI,CAAC,EACtD,IAAI,CAAC,UAAU;AAAA,IACd,GAAG;AAAA,IACH,KAAK,SAAS,KAAK,KAAK,CAAC;AAAA,IACzB,OAAO,SAAS,KAAK,OAAO,SAAS;AAAA,EACvC,EAAE,IACJ,CAAC;AAEL,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM,SAAS,MAAM,MAAM,QAAQ;AAAA,IACnC,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,IAChC;AAAA,EACF;AACF;AAEA,SAAS,cACP,OACA,UAGI,CAAC,GACe;AACpB,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,QAAI,CAAC,QAAQ,SAAU,QAAO;AAC9B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,QAAQ,sBAAsB;AAAA,IACvC;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,YAAY;AAC7B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,UACE,kBAAkB,MAAM,QAAQ,KAChC,kBAAkB,MAAS,KAAK;AAAA,QAC9B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,EAAE,KAAK,GAAG,OAAO,QAAQ,sBAAsB,iBAAiB;AAAA,UAChE,EAAE,KAAK,KAAK,OAAO,QAAQ,sBAAsB,iBAAiB;AAAA,QACpE;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,SAAS;AAC1B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,KAAK,SAAS,MAAM,KAAK,EAAE;AAAA,MAC3B,GAAI,iBAAiB,MAAM,OAAO,MAAM,SACpC,CAAC,IACD,EAAE,SAAS,iBAAiB,MAAM,OAAO,EAAE;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM;AAAA,IACN,OAAO,SAAS,MAAM,OAAO,QAAQ,sBAAsB,gBAAgB;AAAA,EAC7E;AACF;AAEA,SAAS,oBACP,OACA,eAC+B;AAC/B,SAAO,cAAc,OAAO,EAAE,oBAAoB,cAAc,CAAC;AACnE;AAEA,SAAS,iBACP,OACA,YACA,cACA,OACW;AACX,QAAM,aAAa,SAAS,aAAa,CAAC,YAAY,eAAe,CAAC;AAEtE,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,OACJ,OAAO,MAAM,SAAS,YAAY,MAAM,KAAK,KAAK,EAAE,SAAS,IACzD,MAAM,OACN;AAEN,QAAM,OAAO;AAAA,IACX,GAAG;AAAA,IACH;AAAA,IACA,IAAI,SAAS,MAAM,IAAI,UAAU;AAAA,IACjC,MAAM,SAAS,MAAM,MAAM,CAAC;AAAA,IAC5B,KAAK,SAAS,MAAM,KAAK,CAAC;AAAA,IAC1B,QAAQ,SAAS,MAAM,QAAQ,sBAAsB;AAAA,EACvD;AAEA,MAAI,SAAS,QAAQ;AACnB,UAAM,cAA6B;AAAA,MACjC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,CAAC;AAAA,MAC9B,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,MAChC,SAAS,SAAS,MAAM,SAAS,EAAE;AAAA,MACnC,cAAc,SAAS,MAAM,cAAc,MAAM,aAAa,kBAAkB;AAAA,MAChF,iBAAiB,SAAS,MAAM,iBAAiB,MAAM,QAAQ;AAAA,MAC/D,MAAM,cAAc,MAAM,IAAI;AAAA,MAC9B,UAAU,UAAU,MAAM,UAAU,KAAK;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,SAAS;AACpB,UAAM,QAAQ,SAAS,MAAM,OAAO,CAAC;AACrC,UAAM,SAAS,SAAS,MAAM,QAAQ,CAAC;AACvC,UAAM,eAA+B;AAAA,MACnC,GAAG;AAAA,MACH,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM,SAAS,MAAM,MAAM,EAAE;AAAA,MAC7B,SAAS,OAAO,MAAM,SAAS,CAAC,OAAO,MAAM,CAAC;AAAA,MAC9C,MAAM,cAAc,MAAM,MAAM;AAAA,QAC9B,oBAAoB;AAAA,QACpB,UAAU;AAAA,MACZ,CAAC;AAAA,MACD,YAAY,UAAU,MAAM,YAAY,yBAAyB;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,QAAQ;AACnB,UAAM,cAA6B;AAAA,MACjC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,kBAAkB;AAAA,MAC/C,OAAO,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AAAA,MACjC,KAAK,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AAAA,MAC7B,QAAQ,aAAa,MAAM,MAAM;AAAA,MACjC,OAAO,SAAS,MAAM,OAAO,SAAS;AAAA,MACtC,OAAO,SAAS,MAAM,OAAO,kBAAkB;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,SAAS;AACpB,UAAM,eAA+B;AAAA,MACnC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,SAAS,MAAM,OAAO,CAAC;AAAA,MAC9B,QAAQ,SAAS,MAAM,QAAQ,CAAC;AAAA,MAChC,KAAK,SAAS,MAAM,KAAK,EAAE;AAAA,MAC3B,YAAY,UAAU,MAAM,YAAY,yBAAyB;AAAA,IACnE;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,eAAe,OAAgB,OAAe,OAAyB;AAC9E,MAAI,CAACA,UAAS,KAAK,GAAG;AACpB,WAAO;AAAA,MACL,IAAI,SAAS,QAAQ,CAAC;AAAA,MACtB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAEA,QAAM,UAAU,OAAO,MAAM,SAAS,WAAW,MAAM,KAAK,KAAK,IAAI;AACrE,QAAM,iBACJ,WAAW,sBAAsB,QAAQ,YAAY,CAAC,IAClD,sBAAsB,QAAQ,YAAY,CAAC,IAC3C,WAAW;AAEjB,QAAM,iBAAiB,MAAM,QAAQ,MAAM,QAAQ,IAAI,MAAM,WAAW,CAAC;AACzE,QAAM,WAAW,eAAe;AAAA,IAAI,CAAC,SAAS,iBAC5C,iBAAiB,SAAS,OAAO,cAAc,KAAK;AAAA,EACtD;AAEA,QAAM,aAAa,oBAAoB,MAAM,YAAY,MAAM,eAAe;AAE9E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,IAAI,SAAS,MAAM,IAAI,SAAS,QAAQ,CAAC,EAAE;AAAA,IAC3C,MAAM;AAAA,IACN,QAAQ,SAAS,MAAM,QAAQ,oBAAoB;AAAA,IACnD;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,kBAAkB,OAAoC;AACpE,QAAM,SAASC,YAAW,KAAK;AAE/B,MAAI,CAACD,UAAS,MAAM,GAAG;AACrB,WAAO;AAAA,MACL,eAAe;AAAA,MACf,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO,eAAe,MAAS;AAAA,MAC/B,QAAQ,CAAC;AAAA,IACX;AAAA,EACF;AAEA,QAAM,QAAQ,eAAe,OAAO,KAAK;AACzC,QAAM,eAAe,MAAM,QAAQ,OAAO,MAAM,IAAI,OAAO,SAAS,CAAC;AACrE,QAAM,SAAS,aAAa,IAAI,CAAC,OAAO,UAAU,eAAe,OAAO,OAAO,KAAK,CAAC;AAErF,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,eAAe;AAAA,IACf,OAAO,SAAS,OAAO,OAAO,aAAa;AAAA,IAC3C,OAAO,SAAS,OAAO,OAAO,aAAa;AAAA,IAC3C,QAAQ,SAAS,OAAO,QAAQ,cAAc;AAAA,IAC9C;AAAA,IACA;AAAA,EACF;AAEA,SAAQ,WAA6B;AAErC,SAAO;AACT;;;AChWA,iBAAsC;;;ACAtC;AAAA,EACE,SAAW;AAAA,EACX,KAAO;AAAA,EACP,OAAS;AAAA,EACT,MAAQ;AAAA,EACR,UAAY;AAAA,IACV;AAAA,EACF;AAAA,EACA,YAAc;AAAA,IACZ,eAAiB;AAAA,MACf,OAAS;AAAA,IACX;AAAA,IACA,SAAW;AAAA,MACT,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,kBAAoB;AAAA,IACtB;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,kBAAoB;AAAA,IACtB;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,IACV;AAAA,IACA,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EACA,sBAAwB;AAAA,EACxB,aAAe;AAAA,IACb,QAAU;AAAA,MACR,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,GAAK;AAAA,UACH,MAAQ;AAAA,QACV;AAAA,QACA,GAAK;AAAA,UACH,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,UAAY;AAAA,MACV,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,cAAgB;AAAA,MACd,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,OAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,OAAS;AAAA,QACP;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,aAAe;AAAA,UACb,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,UAAY;AAAA,MACZ,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,YAAc;AAAA,MACZ,MAAQ;AAAA,MACR,UAAY;AAAA,MACZ,UAAY;AAAA,MACZ,OAAS;AAAA,QACP,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,cAAgB;AAAA,UACd,MAAQ;AAAA,QACV;AAAA,QACA,iBAAmB;AAAA,UACjB,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,MAAQ;AAAA,MACN,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,UAAY;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,SAAW;AAAA,UACT,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,WAAa;AAAA,UACX,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,MAAQ;AAAA,UACN,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,QACA,UAAY;AAAA,UACV,OAAS;AAAA,YACP;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,gBAAkB;AAAA,MAChB,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,QACV;AAAA,QACA,WAAa;AAAA,UACX,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,WAAa;AAAA,MACX,MAAQ;AAAA,MACR,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,SAAW;AAAA,MACT,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,KAAO;AAAA,UACL,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,SAAW;AAAA,UACT,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,OAAS;AAAA,QACP;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,cAAgB;AAAA,gBACd,MAAQ;AAAA,cACV;AAAA,cACA,iBAAmB;AAAA,gBACjB,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,gBAAkB;AAAA,gBAChB,MAAQ;AAAA,cACV;AAAA,cACA,UAAY;AAAA,gBACV,MAAQ;AAAA,cACV;AAAA,cACA,UAAY;AAAA,gBACV,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,aAAe;AAAA,gBACb,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,KAAO;AAAA,gBACL,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,cACA,OAAS;AAAA,gBACP,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,KAAO;AAAA,gBACL,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,cACV;AAAA,cACA,SAAW;AAAA,gBACT,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,QAAU;AAAA,gBACR,MAAQ;AAAA,cACV;AAAA,cACA,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAM;AAAA,YACJ,UAAY;AAAA,cACV;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,MAAQ;AAAA,gBACN,OAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,UACA,MAAQ;AAAA,YACN,UAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,WAAa;AAAA,gBACX,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,MAAQ;AAAA,gBACN,MAAQ;AAAA,gBACR,OAAS;AAAA,kBACP,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,eAAiB;AAAA,gBACf,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,IACA,iBAAmB;AAAA,MACjB,MAAQ;AAAA,IACV;AAAA,IACA,OAAS;AAAA,MACP,MAAQ;AAAA,MACR,UAAY;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,IAAM;AAAA,UACJ,MAAQ;AAAA,QACV;AAAA,QACA,MAAQ;AAAA,UACN,MAAQ;AAAA,QACV;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,QACV;AAAA,QACA,YAAc;AAAA,UACZ,MAAQ;AAAA,QACV;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,OAAS;AAAA,YACP,MAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,MACA,sBAAwB;AAAA,IAC1B;AAAA,EACF;AACF;;;ADrrBA,IAAM,MAAM,IAAI,WAAAE,QAAI;AAAA,EAClB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,iBAAiB;AACnB,CAAC;AAED,IAAM,aAAa,IAAI,QAAQ,cAAQ;AAEvC,SAAS,SAAS,OAA2C;AAC3D,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,MAAM,gBAAgB;AAAA,IAC5B,SAAS,MAAM,WAAW;AAAA,IAC1B,SAAS,MAAM;AAAA,IACf,QACE,MAAM,UAAU,OAAO,MAAM,WAAW,WACnC,MAAM,SACP;AAAA,EACR;AACF;AAEO,SAAS,iBAAiB,OAAiC;AAChE,QAAM,QAAQ,WAAW,KAAK;AAC9B,MAAI,CAAC,OAAO;AACV,UAAM,UAAU,WAAW,UAAU,CAAC,GAAG,IAAI,QAAQ;AACrD,UAAM,IAAI,sBAAsB,MAAM;AAAA,EACxC;AAEA,SAAO;AACT;;;AE7BO,SAAS,cAAc,OAAsC;AAClE,QAAM,WAAW,gBAAgB,KAAK;AACtC,QAAM,YAAY,iBAAiB,QAAQ;AAC3C,SAAO,kBAAkB,SAAS;AACpC;;;ACTO,IAAM,oBAAoB;","names":["isRecord","cloneValue","Ajv"]}
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "json2pptx-schema",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Schema parsing pipeline for json2pptx documents (migrate -> validate -> normalize).",
5
5
  "license": "MIT",
6
6
  "homepage": "https://json2pptx.henryge.com/",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/gezhiheng/json2ppt-editor/"
9
+ "url": "git+https://github.com/gezhiheng/json2pptx-editor.git",
10
+ "directory": "src/lib/json2pptx-schema"
10
11
  },
11
- "main": "dist/index.cjs",
12
+ "main": "dist/index.js",
12
13
  "module": "dist/index.mjs",
13
14
  "types": "dist/index.d.ts",
14
15
  "exports": {
15
16
  ".": {
16
17
  "types": "./dist/index.d.ts",
17
18
  "import": "./dist/index.mjs",
18
- "require": "./dist/index.cjs",
19
+ "require": "./dist/index.js",
19
20
  "default": "./dist/index.mjs"
20
21
  }
21
22
  },
@@ -41,11 +42,11 @@
41
42
  "prepublishOnly": "pnpm run build"
42
43
  },
43
44
  "dependencies": {
44
- "ajv": "^8.17.1"
45
+ "ajv": "^8.18.0"
45
46
  },
46
47
  "devDependencies": {
47
- "@types/node": "^22.10.2",
48
+ "@types/node": "^25.5.0",
48
49
  "tsup": "^8.5.1",
49
- "typescript": "^5.6.3"
50
+ "typescript": "^5.9.3"
50
51
  }
51
52
  }