{"version":3,"sources":["../src/cli.ts"],"names":["glob","resolve","readFileSync","parse","relative","generateTypes","dirname","existsSync","mkdirSync","writeFileSync","format","types","extractTypesFromContent","deduplicateTypes","sortTypes","generateDtsFromTypes"],"mappings":"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","file":"cli.cjs","sourcesContent":["#!/usr/bin/env node\n/**\n * MDXLD CLI\n *\n * Commands:\n *   mdxld typegen [glob] [-o output]  Generate TypeScript types from MDX files\n *   mdxld types [glob] [-o output]    Extract TypeScript types from code blocks\n *   mdxld format [glob] [options]     Format MDX files with type comment alignment\n *\n * @packageDocumentation\n */\n\nimport { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs'\nimport { resolve, dirname, relative } from 'node:path'\nimport { glob } from 'node:fs/promises'\nimport { parse } from './parse.js'\nimport { generateTypes } from './typegen.js'\nimport { format } from './format.js'\nimport {\n  extractTypesFromContent,\n  generateDtsFromTypes,\n  deduplicateTypes,\n  sortTypes,\n} from './types-extract.js'\nimport type { MDXLDDocument } from './types.js'\n\nconst VERSION = '0.1.0'\n\ninterface TypegenArgs {\n  pattern: string\n  output: string\n  watch: boolean\n  help: boolean\n}\n\ninterface FormatArgs {\n  pattern: string\n  write: boolean\n  check: boolean\n  noPrettier: boolean\n  minGap: number\n  help: boolean\n}\n\ninterface TypesArgs {\n  pattern: string\n  output: string\n  noExport: boolean\n  noSort: boolean\n  help: boolean\n}\n\nfunction parseTypegenArgs(args: string[]): TypegenArgs {\n  const result: TypegenArgs = {\n    pattern: '**/*.{mdx,md}',\n    output: '.mdx/types.d.ts',\n    watch: false,\n    help: false,\n  }\n\n  for (let i = 0; i < args.length; i++) {\n    const arg = args[i]!\n    if (arg === '-o' || arg === '--output') {\n      result.output = args[++i] || result.output\n    } else if (arg === '-w' || arg === '--watch') {\n      result.watch = true\n    } else if (arg === '-h' || arg === '--help') {\n      result.help = true\n    } else if (!arg.startsWith('-')) {\n      result.pattern = arg\n    }\n  }\n\n  return result\n}\n\nfunction parseFormatArgs(args: string[]): FormatArgs {\n  const result: FormatArgs = {\n    pattern: '**/*.{mdx,md}',\n    write: false,\n    check: false,\n    noPrettier: false,\n    minGap: 2,\n    help: false,\n  }\n\n  for (let i = 0; i < args.length; i++) {\n    const arg = args[i]!\n    if (arg === '-w' || arg === '--write') {\n      result.write = true\n    } else if (arg === '-c' || arg === '--check') {\n      result.check = true\n    } else if (arg === '--no-prettier') {\n      result.noPrettier = true\n    } else if (arg === '--min-gap') {\n      result.minGap = parseInt(args[++i] || '2', 10)\n    } else if (arg === '-h' || arg === '--help') {\n      result.help = true\n    } else if (!arg.startsWith('-')) {\n      result.pattern = arg\n    }\n  }\n\n  return result\n}\n\nfunction parseTypesArgs(args: string[]): TypesArgs {\n  const result: TypesArgs = {\n    pattern: '**/*.{mdx,md}',\n    output: '.mdx/types.d.ts',\n    noExport: false,\n    noSort: false,\n    help: false,\n  }\n\n  for (let i = 0; i < args.length; i++) {\n    const arg = args[i]!\n    if (arg === '-o' || arg === '--output') {\n      result.output = args[++i] || result.output\n    } else if (arg === '--no-export') {\n      result.noExport = true\n    } else if (arg === '--no-sort') {\n      result.noSort = true\n    } else if (arg === '-h' || arg === '--help') {\n      result.help = true\n    } else if (!arg.startsWith('-')) {\n      result.pattern = arg\n    }\n  }\n\n  return result\n}\n\nfunction printHelp(): void {\n  console.log(`\nmdxld v${VERSION} - MDX + Linked Data CLI\n\nUSAGE:\n  mdxld <command> [options]\n\nCOMMANDS:\n  typegen [pattern]   Generate TypeScript types from MDX frontmatter\n  types [pattern]     Extract TypeScript types from code blocks\n  format [pattern]    Format MDX files with type comment alignment\n\nOPTIONS (typegen):\n  -o, --output <path>   Output file path (default: .mdx/types.d.ts)\n  -w, --watch           Watch for changes (not yet implemented)\n  -h, --help            Show this help message\n\nOPTIONS (types):\n  -o, --output <path>   Output file path (default: .mdx/types.d.ts)\n  --no-export           Don't add export to non-exported types\n  --no-sort             Don't sort types by dependencies\n  -h, --help            Show this help message\n\nOPTIONS (format):\n  -w, --write           Write formatted output back to files\n  -c, --check           Check if files are formatted (exit 1 if not)\n  --no-prettier         Skip Prettier formatting (only align comments)\n  --min-gap <n>         Minimum spaces before comments (default: 2)\n  -h, --help            Show this help message\n\nEXAMPLES:\n  mdxld typegen                         # Infer types from frontmatter\n  mdxld typegen \"content/**/*.mdx\"      # Custom glob pattern\n\n  mdxld types                           # Extract types from code blocks\n  mdxld types \"schema/**/*.mdx\"         # Custom glob pattern\n  mdxld types -o src/types/schema.d.ts  # Custom output path\n\n  mdxld format                          # Format all MDX/MD files (dry run)\n  mdxld format -w                       # Format and write changes\n  mdxld format -c                       # Check formatting (CI mode)\n\nDESCRIPTION:\n  typegen - Infers TypeScript types from YAML frontmatter data.\n\n  types - Extracts TypeScript type/interface definitions from code blocks\n  marked with \\`\\`\\`ts type or \\`\\`\\`ts types. Useful for schema definitions\n  like Functions, Workflows, Agents, Nouns, Verbs, etc.\n\n  format - Formats MDX files using Prettier and aligns trailing comments\n  in TypeScript type blocks.\n`)\n}\n\nasync function scanFiles(pattern: string): Promise<string[]> {\n  const files: string[] = []\n  const cwd = process.cwd()\n\n  // Use Node's built-in glob (Node 22+)\n  try {\n    for await (const entry of glob(pattern, { cwd })) {\n      files.push(resolve(cwd, entry))\n    }\n  } catch {\n    // Fallback for older Node versions - simple recursive scan\n    console.error('Warning: glob not available, using fallback')\n    // For now, just return empty - in production we'd add a fallback\n  }\n\n  return files\n}\n\nasync function typegen(args: TypegenArgs): Promise<void> {\n  if (args.help) {\n    printHelp()\n    return\n  }\n\n  const cwd = process.cwd()\n  console.log(`Scanning for ${args.pattern}...`)\n\n  const files = await scanFiles(args.pattern)\n\n  if (files.length === 0) {\n    console.log('No files found matching pattern')\n    return\n  }\n\n  console.log(`Found ${files.length} file(s)`)\n\n  // Parse all files\n  const docs: MDXLDDocument[] = []\n  const errors: { file: string; error: string }[] = []\n\n  for (const file of files) {\n    try {\n      const content = readFileSync(file, 'utf-8')\n      const doc = parse(content)\n\n      // Add source file info to data for debugging\n      const relativePath = relative(cwd, file)\n      docs.push({\n        ...doc,\n        data: {\n          ...doc.data,\n          _source: relativePath,\n        },\n      })\n    } catch (err) {\n      errors.push({\n        file: relative(cwd, file),\n        error: err instanceof Error ? err.message : String(err),\n      })\n    }\n  }\n\n  if (errors.length > 0) {\n    console.warn(`\\nWarnings (${errors.length} file(s) had errors):`)\n    for (const { file, error } of errors.slice(0, 5)) {\n      console.warn(`  ${file}: ${error}`)\n    }\n    if (errors.length > 5) {\n      console.warn(`  ... and ${errors.length - 5} more`)\n    }\n  }\n\n  if (docs.length === 0) {\n    console.log('No valid documents found')\n    return\n  }\n\n  // Remove _source from type generation\n  const cleanDocs = docs.map((doc) => {\n    const { _source, ...rest } = doc.data\n    return { ...doc, data: rest }\n  })\n\n  // Generate types\n  const types = generateTypes(cleanDocs)\n\n  // Write output\n  const outputPath = resolve(cwd, args.output)\n  const outputDir = dirname(outputPath)\n\n  if (!existsSync(outputDir)) {\n    mkdirSync(outputDir, { recursive: true })\n  }\n\n  writeFileSync(outputPath, types, 'utf-8')\n\n  console.log(`\\nGenerated types for ${docs.length} document(s)`)\n  console.log(`Output: ${relative(cwd, outputPath)}`)\n\n  // Print type summary\n  const typeNames = new Set<string>()\n  for (const doc of docs) {\n    const type = doc.type ?? doc.data.$type\n    if (typeof type === 'string') {\n      typeNames.add(type)\n    } else if (Array.isArray(type) && type.length > 0) {\n      typeNames.add(type[0]!)\n    } else {\n      typeNames.add('MDXDocument')\n    }\n  }\n  console.log(`Types: ${[...typeNames].join(', ')}`)\n}\n\nasync function formatCommand(args: FormatArgs): Promise<void> {\n  if (args.help) {\n    printHelp()\n    return\n  }\n\n  const cwd = process.cwd()\n  console.log(`Scanning for ${args.pattern}...`)\n\n  const files = await scanFiles(args.pattern)\n\n  if (files.length === 0) {\n    console.log('No files found matching pattern')\n    return\n  }\n\n  console.log(`Found ${files.length} file(s)`)\n\n  let hasChanges = false\n  const results: { file: string; changed: boolean; error?: string }[] = []\n\n  for (const file of files) {\n    const relativePath = relative(cwd, file)\n    try {\n      const content = readFileSync(file, 'utf-8')\n      const formatted = await format(content, {\n        prettier: !args.noPrettier,\n        minCommentGap: args.minGap,\n      })\n\n      const changed = content !== formatted\n\n      if (changed) {\n        hasChanges = true\n        if (args.write) {\n          writeFileSync(file, formatted, 'utf-8')\n          results.push({ file: relativePath, changed: true })\n        } else {\n          results.push({ file: relativePath, changed: true })\n        }\n      } else {\n        results.push({ file: relativePath, changed: false })\n      }\n    } catch (err) {\n      results.push({\n        file: relativePath,\n        changed: false,\n        error: err instanceof Error ? err.message : String(err),\n      })\n    }\n  }\n\n  // Print results\n  const changedFiles = results.filter((r) => r.changed && !r.error)\n  const errorFiles = results.filter((r) => r.error)\n  const unchangedFiles = results.filter((r) => !r.changed && !r.error)\n\n  if (changedFiles.length > 0) {\n    console.log(`\\n${args.write ? 'Formatted' : 'Would format'} ${changedFiles.length} file(s):`)\n    for (const { file } of changedFiles.slice(0, 10)) {\n      console.log(`  ${file}`)\n    }\n    if (changedFiles.length > 10) {\n      console.log(`  ... and ${changedFiles.length - 10} more`)\n    }\n  }\n\n  if (errorFiles.length > 0) {\n    console.warn(`\\nErrors (${errorFiles.length} file(s)):`)\n    for (const { file, error } of errorFiles.slice(0, 5)) {\n      console.warn(`  ${file}: ${error}`)\n    }\n  }\n\n  if (unchangedFiles.length > 0 && changedFiles.length === 0) {\n    console.log('\\nAll files are already formatted.')\n  }\n\n  // Exit with error code for --check mode\n  if (args.check && hasChanges) {\n    console.log('\\nSome files need formatting. Run with -w to fix.')\n    process.exit(1)\n  }\n}\n\nasync function typesCommand(args: TypesArgs): Promise<void> {\n  if (args.help) {\n    printHelp()\n    return\n  }\n\n  const cwd = process.cwd()\n  console.log(`Scanning for ${args.pattern}...`)\n\n  const files = await scanFiles(args.pattern)\n\n  if (files.length === 0) {\n    console.log('No files found matching pattern')\n    return\n  }\n\n  console.log(`Found ${files.length} file(s)`)\n\n  // Extract types from all files\n  const allTypes: ReturnType<typeof extractTypesFromContent> = []\n  const errors: { file: string; error: string }[] = []\n\n  for (const file of files) {\n    const relativePath = relative(cwd, file)\n    try {\n      const content = readFileSync(file, 'utf-8')\n      const types = extractTypesFromContent(content, relativePath)\n      allTypes.push(...types)\n    } catch (err) {\n      errors.push({\n        file: relativePath,\n        error: err instanceof Error ? err.message : String(err),\n      })\n    }\n  }\n\n  if (errors.length > 0) {\n    console.warn(`\\nWarnings (${errors.length} file(s) had errors):`)\n    for (const { file, error } of errors.slice(0, 5)) {\n      console.warn(`  ${file}: ${error}`)\n    }\n    if (errors.length > 5) {\n      console.warn(`  ... and ${errors.length - 5} more`)\n    }\n  }\n\n  if (allTypes.length === 0) {\n    console.log('\\nNo TypeScript types found in code blocks.')\n    console.log('Types are extracted from code blocks marked with ```ts type or ```ts types')\n    return\n  }\n\n  // Deduplicate and optionally sort\n  let types = deduplicateTypes(allTypes)\n  if (!args.noSort) {\n    types = sortTypes(types)\n  }\n\n  // Generate .d.ts content\n  const dtsContent = generateDtsFromTypes(types, {\n    exportAll: !args.noExport,\n    includeSourceComments: true,\n  })\n\n  // Write output\n  const outputPath = resolve(cwd, args.output)\n  const outputDir = dirname(outputPath)\n\n  if (!existsSync(outputDir)) {\n    mkdirSync(outputDir, { recursive: true })\n  }\n\n  writeFileSync(outputPath, dtsContent, 'utf-8')\n\n  console.log(`\\nExtracted ${types.length} type(s) from ${files.length} file(s)`)\n  console.log(`Output: ${relative(cwd, outputPath)}`)\n\n  // Print type summary\n  const typeNames = types.map((t) => t.name)\n  if (typeNames.length <= 10) {\n    console.log(`Types: ${typeNames.join(', ')}`)\n  } else {\n    console.log(`Types: ${typeNames.slice(0, 10).join(', ')}, ... and ${typeNames.length - 10} more`)\n  }\n}\n\nasync function main(): Promise<void> {\n  const args = process.argv.slice(2)\n  const command = args[0] || 'help'\n  const cmdArgs = args.slice(1)\n\n  switch (command) {\n    case 'typegen':\n      await typegen(parseTypegenArgs(cmdArgs))\n      break\n    case 'types':\n      await typesCommand(parseTypesArgs(cmdArgs))\n      break\n    case 'format':\n      await formatCommand(parseFormatArgs(cmdArgs))\n      break\n    case 'help':\n    case '--help':\n    case '-h':\n      printHelp()\n      break\n    case '--version':\n    case '-v':\n      console.log(`mdxld v${VERSION}`)\n      break\n    default:\n      console.error(`Unknown command: ${command}`)\n      printHelp()\n      process.exit(1)\n  }\n}\n\nmain().catch((err) => {\n  console.error('Error:', err.message || err)\n  process.exit(1)\n})\n"]}