import { spawn } from "child_process" import { createHash } from "crypto" import { promises as fs } from "fs" import { createRequire } from "module" import { availableParallelism } from "os" import path from "path" import { fileURLToPath } from "url" import { parseArgs } from "util" import prettier from "prettier" import { rimraf } from "rimraf" import { registrySchema, type RegistryItem } from "shadcn/schema" import { createStyleMap, transformDirection, transformIcons, transformStyle, } from "shadcn/utils" import { Project, ScriptKind } from "ts-morph" import { getAllBlocks } from "@/lib/blocks" import { legacyStyles } from "@/registry/_legacy-styles" import { BASE_COLORS } from "@/registry/base-colors" import { BASES, type Base } from "@/registry/bases" import { PRESETS } from "@/registry/config" import { STYLES } from "@/registry/styles" /* * build-registry.mts is the single v4 registry pipeline. * * Source of truth: * - Authored raw component/registry source lives in registry/bases/base and * registry/bases/radix. * - Authored demo source lives in examples/base and examples/radix. * - Style tokens live in registry/styles/style-*.css. * * Persistent outputs: * - registry/bases/__index__.tsx * - registry/__index__.tsx * - examples/__index__.tsx * - styles//ui/* * - styles//ui-rtl/* for base-nova and radix-nova only * - public/r/* * * Temporary outputs: * - registry//* * - registry-