{"version":3,"sources":["../src/typegen.ts"],"names":["name"],"mappings":"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","file":"chunk-XDLGRVR7.cjs","sourcesContent":["/**\n * MDXLD Type Generation\n *\n * Generate TypeScript type definitions from MDXLD documents.\n * Scans frontmatter to infer types and creates .d.ts files.\n *\n * @packageDocumentation\n */\n\nimport type { MDXLDDocument, MDXLDData } from './types.js'\n\n/**\n * TypeScript type representation\n */\nexport type TSType =\n  | 'string'\n  | 'number'\n  | 'boolean'\n  | 'null'\n  | 'undefined'\n  | 'unknown'\n  | 'string[]'\n  | 'number[]'\n  | 'boolean[]'\n  | 'unknown[]'\n  | { kind: 'object'; properties: Record<string, TSType> }\n  | { kind: 'union'; types: TSType[] }\n  | { kind: 'array'; items: TSType }\n\n/**\n * Inferred field with type and metadata\n */\nexport interface InferredField {\n  name: string\n  type: TSType\n  optional: boolean\n  description?: string\n}\n\n/**\n * Inferred schema for a document type\n */\nexport interface InferredSchema {\n  name: string\n  fields: InferredField[]\n  description?: string\n}\n\n/**\n * Options for type generation\n */\nexport interface TypegenOptions {\n  /** Include JSDoc comments */\n  jsdoc?: boolean\n  /** Export format: 'interface' | 'type' */\n  format?: 'interface' | 'type'\n  /** Base interface to extend */\n  extends?: string\n  /** Add index signature for additional properties */\n  indexSignature?: boolean\n}\n\n/**\n * Infer TypeScript type from a JavaScript value\n */\nexport function inferType(value: unknown): TSType {\n  if (value === null) return 'null'\n  if (value === undefined) return 'undefined'\n\n  const type = typeof value\n\n  if (type === 'string') return 'string'\n  if (type === 'number') return 'number'\n  if (type === 'boolean') return 'boolean'\n\n  if (Array.isArray(value)) {\n    if (value.length === 0) return 'unknown[]'\n\n    // Infer array item type from all elements\n    const itemTypes = value.map(inferType)\n    const uniqueTypes = dedupeTypes(itemTypes)\n\n    if (uniqueTypes.length === 1) {\n      return { kind: 'array', items: uniqueTypes[0]! }\n    }\n\n    return { kind: 'array', items: { kind: 'union', types: uniqueTypes } }\n  }\n\n  if (type === 'object') {\n    const obj = value as Record<string, unknown>\n    const properties: Record<string, TSType> = {}\n\n    for (const [key, val] of Object.entries(obj)) {\n      properties[key] = inferType(val)\n    }\n\n    return { kind: 'object', properties }\n  }\n\n  return 'unknown'\n}\n\n/**\n * Merge two types into a union or combined type\n */\nexport function mergeTypes(a: TSType, b: TSType): TSType {\n  // Same type\n  if (typeEquals(a, b)) return a\n\n  // Handle nullability\n  if (a === 'null' || a === 'undefined') {\n    return { kind: 'union', types: [b, a] }\n  }\n  if (b === 'null' || b === 'undefined') {\n    return { kind: 'union', types: [a, b] }\n  }\n\n  // Merge objects with same structure\n  if (\n    typeof a === 'object' &&\n    a.kind === 'object' &&\n    typeof b === 'object' &&\n    b.kind === 'object'\n  ) {\n    const properties: Record<string, TSType> = { ...a.properties }\n\n    for (const [key, type] of Object.entries(b.properties)) {\n      if (key in properties) {\n        properties[key] = mergeTypes(properties[key]!, type)\n      } else {\n        // Field only in b, make it optional via union with undefined\n        properties[key] = { kind: 'union', types: [type, 'undefined'] }\n      }\n    }\n\n    // Fields only in a should also be optional\n    for (const key of Object.keys(a.properties)) {\n      if (!(key in b.properties)) {\n        properties[key] = { kind: 'union', types: [a.properties[key]!, 'undefined'] }\n      }\n    }\n\n    return { kind: 'object', properties }\n  }\n\n  // Merge arrays\n  if (\n    typeof a === 'object' &&\n    a.kind === 'array' &&\n    typeof b === 'object' &&\n    b.kind === 'array'\n  ) {\n    return { kind: 'array', items: mergeTypes(a.items, b.items) }\n  }\n\n  // Create union\n  const aTypes = typeof a === 'object' && a.kind === 'union' ? a.types : [a]\n  const bTypes = typeof b === 'object' && b.kind === 'union' ? b.types : [b]\n\n  return { kind: 'union', types: dedupeTypes([...aTypes, ...bTypes]) }\n}\n\n/**\n * Check if two types are equal\n */\nfunction typeEquals(a: TSType, b: TSType): boolean {\n  if (typeof a === 'string' && typeof b === 'string') return a === b\n  if (typeof a === 'string' || typeof b === 'string') return false\n\n  if (a.kind !== b.kind) return false\n\n  if (a.kind === 'union' && b.kind === 'union') {\n    if (a.types.length !== b.types.length) return false\n    return a.types.every((t, i) => typeEquals(t, b.types[i]!))\n  }\n\n  if (a.kind === 'array' && b.kind === 'array') {\n    return typeEquals(a.items, b.items)\n  }\n\n  if (a.kind === 'object' && b.kind === 'object') {\n    const aKeys = Object.keys(a.properties).sort()\n    const bKeys = Object.keys(b.properties).sort()\n    if (aKeys.length !== bKeys.length) return false\n    if (!aKeys.every((k, i) => k === bKeys[i])) return false\n    return aKeys.every((k) => typeEquals(a.properties[k]!, b.properties[k]!))\n  }\n\n  return false\n}\n\n/**\n * Deduplicate types array\n */\nfunction dedupeTypes(types: TSType[]): TSType[] {\n  const result: TSType[] = []\n  for (const type of types) {\n    if (!result.some((t) => typeEquals(t, type))) {\n      result.push(type)\n    }\n  }\n  return result\n}\n\n/**\n * Convert TSType to TypeScript string\n */\nexport function typeToString(type: TSType): string {\n  if (typeof type === 'string') return type\n\n  if (type.kind === 'union') {\n    const types = type.types.map(typeToString)\n    // Handle optional (T | undefined) specially\n    if (types.includes('undefined')) {\n      const nonUndefined = types.filter((t) => t !== 'undefined')\n      if (nonUndefined.length === 1) {\n        return `${nonUndefined[0]} | undefined`\n      }\n    }\n    return types.join(' | ')\n  }\n\n  if (type.kind === 'array') {\n    const items = typeToString(type.items)\n    // Wrap complex types in parens\n    if (items.includes('|') || items.includes('&')) {\n      return `(${items})[]`\n    }\n    return `${items}[]`\n  }\n\n  if (type.kind === 'object') {\n    const props = Object.entries(type.properties)\n      .map(([key, t]) => {\n        const optional = typeof t === 'object' && t.kind === 'union' && t.types.includes('undefined')\n        const cleanType = optional && typeof t === 'object' && t.kind === 'union'\n          ? { kind: 'union' as const, types: t.types.filter((x) => x !== 'undefined') }\n          : t\n        const typeStr = typeof cleanType === 'object' && cleanType.kind === 'union' && cleanType.types.length === 1\n          ? typeToString(cleanType.types[0]!)\n          : typeToString(cleanType)\n        const safeKey = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key) ? key : `'${key}'`\n        return `${safeKey}${optional ? '?' : ''}: ${typeStr}`\n      })\n      .join('; ')\n    return `{ ${props} }`\n  }\n\n  return 'unknown'\n}\n\n/**\n * Infer schema from a single document\n */\nexport function inferSchemaFromDocument(doc: MDXLDDocument): InferredSchema {\n  const typeName = getTypeName(doc)\n  const fields: InferredField[] = []\n\n  // Add id, type, context if present\n  if (doc.id !== undefined) {\n    fields.push({ name: '$id', type: 'string', optional: true })\n  }\n  if (doc.type !== undefined) {\n    const typeType = Array.isArray(doc.type) ? 'string[]' : 'string'\n    fields.push({ name: '$type', type: typeType as TSType, optional: true })\n  }\n  if (doc.context !== undefined) {\n    fields.push({ name: '$context', type: inferType(doc.context), optional: true })\n  }\n\n  // Infer from data fields\n  for (const [key, value] of Object.entries(doc.data)) {\n    if (key.startsWith('$')) continue // Skip LD properties already handled\n    fields.push({\n      name: key,\n      type: inferType(value),\n      optional: false,\n    })\n  }\n\n  return { name: typeName, fields }\n}\n\n/**\n * Get type name from document\n */\nfunction getTypeName(doc: MDXLDDocument): string {\n  const type = doc.type ?? doc.data.$type\n  if (typeof type === 'string') {\n    return sanitizeTypeName(type)\n  }\n  if (Array.isArray(type) && type.length > 0) {\n    return sanitizeTypeName(type[0]!)\n  }\n  return 'MDXDocument'\n}\n\n/**\n * Sanitize a string to be a valid TypeScript identifier\n */\nfunction sanitizeTypeName(name: string): string {\n  // Remove URL parts if it's a full URL\n  const lastSegment = name.split('/').pop() || name\n  // Remove non-alphanumeric chars, ensure starts with letter\n  let sanitized = lastSegment.replace(/[^a-zA-Z0-9_]/g, '')\n  if (!/^[a-zA-Z_]/.test(sanitized)) {\n    sanitized = 'Type' + sanitized\n  }\n  // PascalCase\n  return sanitized.charAt(0).toUpperCase() + sanitized.slice(1)\n}\n\n/**\n * Merge multiple schemas of the same type\n */\nexport function mergeSchemas(schemas: InferredSchema[]): InferredSchema {\n  if (schemas.length === 0) {\n    return { name: 'MDXDocument', fields: [] }\n  }\n\n  if (schemas.length === 1) {\n    return schemas[0]!\n  }\n\n  const name = schemas[0]!.name\n  const fieldMap = new Map<string, { type: TSType; count: number }>()\n  const totalDocs = schemas.length\n\n  for (const schema of schemas) {\n    for (const field of schema.fields) {\n      const existing = fieldMap.get(field.name)\n      if (existing) {\n        fieldMap.set(field.name, {\n          type: mergeTypes(existing.type, field.type),\n          count: existing.count + 1,\n        })\n      } else {\n        fieldMap.set(field.name, { type: field.type, count: 1 })\n      }\n    }\n  }\n\n  const fields: InferredField[] = []\n  for (const [name, { type, count }] of fieldMap) {\n    fields.push({\n      name,\n      type,\n      optional: count < totalDocs, // Optional if not in all documents\n    })\n  }\n\n  return { name, fields }\n}\n\n/**\n * Generate TypeScript interface from schema\n */\nexport function generateInterface(\n  schema: InferredSchema,\n  options: TypegenOptions = {}\n): string {\n  const { format = 'interface', extends: baseType, indexSignature = false, jsdoc = true } = options\n\n  const lines: string[] = []\n\n  // JSDoc comment\n  if (jsdoc && schema.description) {\n    lines.push(`/**`)\n    lines.push(` * ${schema.description}`)\n    lines.push(` */`)\n  }\n\n  // Interface declaration\n  const extendsClause = baseType ? ` extends ${baseType}` : ''\n\n  if (format === 'interface') {\n    lines.push(`export interface ${schema.name}${extendsClause} {`)\n  } else {\n    lines.push(`export type ${schema.name} = ${baseType ? `${baseType} & ` : ''}{`)\n  }\n\n  // Fields\n  for (const field of schema.fields) {\n    const safeKey = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(field.name) ? field.name : `'${field.name}'`\n    const optional = field.optional ? '?' : ''\n    const typeStr = typeToString(field.type)\n    lines.push(`  ${safeKey}${optional}: ${typeStr}`)\n  }\n\n  // Index signature\n  if (indexSignature) {\n    lines.push(`  [key: string]: unknown`)\n  }\n\n  lines.push(`}`)\n\n  return lines.join('\\n')\n}\n\n/**\n * Generate TypeScript types from multiple documents\n */\nexport function generateTypes(\n  docs: MDXLDDocument[],\n  options: TypegenOptions = {}\n): string {\n  // Group documents by type\n  const byType = new Map<string, MDXLDDocument[]>()\n\n  for (const doc of docs) {\n    const typeName = getTypeName(doc)\n    const existing = byType.get(typeName) || []\n    existing.push(doc)\n    byType.set(typeName, existing)\n  }\n\n  // Generate schema for each type\n  const schemas: InferredSchema[] = []\n\n  for (const [, typeDocs] of byType) {\n    const docSchemas = typeDocs.map(inferSchemaFromDocument)\n    schemas.push(mergeSchemas(docSchemas))\n  }\n\n  // Generate output\n  const lines: string[] = [\n    '/**',\n    ' * Auto-generated TypeScript types from MDXLD documents',\n    ' * Generated by: mdxld typegen',\n    ' * ',\n    ' * DO NOT EDIT MANUALLY',\n    ' */',\n    '',\n    \"import type { MDXLDDocument } from 'mdxld'\",\n    '',\n  ]\n\n  // Generate interfaces\n  for (const schema of schemas) {\n    lines.push(generateInterface(schema, options))\n    lines.push('')\n  }\n\n  // Generate union type of all document types\n  if (schemas.length > 1) {\n    const typeNames = schemas.map((s) => s.name)\n    lines.push(`/** Union of all document types */`)\n    lines.push(`export type AnyDocument = ${typeNames.join(' | ')}`)\n    lines.push('')\n  }\n\n  // Generate typed document helpers\n  for (const schema of schemas) {\n    lines.push(`/** ${schema.name} document with content */`)\n    lines.push(`export type ${schema.name}Document = MDXLDDocument & { data: ${schema.name} }`)\n    lines.push('')\n  }\n\n  return lines.join('\\n')\n}\n"]}