@babelize/elements 1.1.0 → 1.1.1
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/cli/index.js +3 -3
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -39,11 +39,11 @@ function resolveAliases() {
|
|
|
39
39
|
function aliasToDir(alias) {
|
|
40
40
|
return alias.replace(/^@\//, "");
|
|
41
41
|
}
|
|
42
|
-
async function fetchItem(
|
|
43
|
-
const url = `${REGISTRY_URL}/${
|
|
42
|
+
async function fetchItem(nameOrUrl) {
|
|
43
|
+
const url = /^https?:\/\//.test(nameOrUrl) ? nameOrUrl : `${REGISTRY_URL}/${nameOrUrl}.json`;
|
|
44
44
|
const res = await fetch(url);
|
|
45
45
|
if (!res.ok) {
|
|
46
|
-
throw new Error(`Failed to fetch "${
|
|
46
|
+
throw new Error(`Failed to fetch "${nameOrUrl}" from ${url} (HTTP ${res.status}).`);
|
|
47
47
|
}
|
|
48
48
|
return await res.json();
|
|
49
49
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, join } from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\n\nconst REGISTRY_URL = process.env.BABELIZE_REGISTRY ?? \"https://elements.babelize.co/r\";\nconst BASE_URL = REGISTRY_URL.replace(/\\/r\\/?$/, \"\");\n\nconst DEFAULT_ALIASES = {\n components: \"@/components\",\n ui: \"@/components/ui\",\n lib: \"@/lib\",\n utils: \"@/lib/utils\",\n hooks: \"@/hooks\",\n};\n\nconst GREEN = \"\\u001b[32m\";\nconst RED = \"\\u001b[31m\";\nconst CYAN = \"\\u001b[36m\";\nconst BOLD = \"\\u001b[1m\";\nconst RESET = \"\\u001b[0m\";\n\ninterface RegistryFile {\n path: string;\n type: string;\n content?: string;\n}\n\ninterface RegistryItem {\n $schema?: string;\n name: string;\n type: string;\n title?: string;\n description?: string;\n dependencies?: string[];\n registryDependencies?: string[];\n files?: RegistryFile[];\n}\n\nconst projectRoot = process.cwd();\n\nfunction log(message = \"\"): void {\n process.stdout.write(`${message}\\n`);\n}\n\nfunction error(message: string): void {\n process.stderr.write(`${RED}${message}${RESET}\\n`);\n}\n\nfunction readComponentsJson(): { aliases?: Record<string, string> } {\n try {\n return JSON.parse(readFileSync(join(projectRoot, \"components.json\"), \"utf8\"));\n } catch {\n return {};\n }\n}\n\nfunction resolveAliases(): Record<string, string> {\n const user = readComponentsJson().aliases ?? {};\n return { ...DEFAULT_ALIASES, ...user };\n}\n\nfunction aliasToDir(alias: string): string {\n return alias.replace(/^@\\//, \"\");\n}\n\nasync function fetchItem(name: string): Promise<RegistryItem> {\n const url = `${REGISTRY_URL}/${name}.json`;\n const res = await fetch(url);\n if (!res.ok) {\n throw new Error(`Failed to fetch \"${name}\" from ${url} (HTTP ${res.status}).`);\n }\n return (await res.json()) as RegistryItem;\n}\n\nfunction detectPackageManager(): string {\n if (existsSync(join(projectRoot, \"bun.lock\")) || existsSync(join(projectRoot, \"bun.lockb\"))) {\n return \"bun\";\n }\n if (existsSync(join(projectRoot, \"pnpm-lock.yaml\"))) return \"pnpm\";\n if (existsSync(join(projectRoot, \"yarn.lock\"))) return \"yarn\";\n return \"npm\";\n}\n\nfunction installDependencies(pm: string, deps: string[]): void {\n const args = pm === \"npm\" ? [\"install\", ...deps] : [\"add\", ...deps];\n log(`\\n${CYAN}Installing dependencies with ${pm}${RESET}`);\n const result = spawnSync(pm, args, { cwd: projectRoot, stdio: \"inherit\" });\n if (result.status !== 0) process.exit(result.status ?? 1);\n}\n\nfunction resolveDestination(file: RegistryFile, aliases: Record<string, string>): string {\n const dir =\n file.type === \"registry:lib\" ? aliasToDir(aliases.lib) : aliasToDir(aliases.components);\n const pathInDir = file.path.replace(/^(components|lib|ui|hooks)\\//, \"\");\n return join(projectRoot, dir, pathInDir);\n}\n\nfunction rewriteImports(content: string, aliases: Record<string, string>): string {\n // Longest specifier first: \"@/lib/utils\" is a prefix of nothing here, but the\n // hook path must not be partially rewritten by a shorter rule later.\n return content\n .replaceAll(\"@/lib/use-controllable-state\", `${aliases.lib}/use-controllable-state`)\n .replaceAll(\"@/lib/utils\", aliases.utils);\n}\n\nfunction writeItem(\n item: RegistryItem,\n aliases: Record<string, string>,\n written: Set<string>,\n): void {\n for (const file of item.files ?? []) {\n if (!file.content) continue;\n const dest = resolveDestination(file, aliases);\n if (written.has(dest)) continue;\n mkdirSync(dirname(dest), { recursive: true });\n writeFileSync(dest, rewriteImports(file.content, aliases), \"utf8\");\n written.add(dest);\n log(` ${GREEN}✓${RESET} ${basename(dest)}`);\n }\n}\n\nasync function addComponents(names: string[], aliases: Record<string, string>): Promise<void> {\n const visited = new Set<string>();\n const written = new Set<string>();\n const deps = new Set<string>();\n\n async function addItem(name: string): Promise<void> {\n if (visited.has(name)) return;\n visited.add(name);\n\n const item = await fetchItem(name);\n log(`\\n${BOLD}${item.title ?? item.name}${RESET}`);\n if (item.description) log(` ${item.description}`);\n\n for (const dep of item.dependencies ?? []) deps.add(dep);\n writeItem(item, aliases, written);\n\n for (const dep of item.registryDependencies ?? []) {\n await addItem(dep);\n }\n }\n\n for (const name of names) {\n await addItem(name);\n }\n\n if (deps.size > 0) {\n installDependencies(detectPackageManager(), [...deps]);\n }\n\n log(`\\n${GREEN}${BOLD}Done.${RESET} Components written to ${aliases.components}.`);\n}\n\nasync function listComponents(): Promise<void> {\n const res = await fetch(`${BASE_URL}/registry.json`);\n if (!res.ok) {\n throw new Error(`Failed to fetch registry index (HTTP ${res.status}).`);\n }\n const index = (await res.json()) as { name: string; items: RegistryItem[] };\n log(`${BOLD}${index.name}${RESET} registry\\n`);\n for (const item of index.items) {\n const title = item.title ?? item.name;\n log(` ${CYAN}${item.name}${RESET} — ${item.description ?? title}`);\n }\n log(`\\nInstall a component:\\n npx shadcn@latest add @elements/<component>`);\n log(` npx @babelize/elements add <component>`);\n}\n\nfunction printUsage(): void {\n log(`${BOLD}Babelize Elements CLI${RESET}`);\n log(`\\nUsage:\\n babelize add <component...> Install components into your project`);\n log(` babelize list List available components\\n`);\n log(`Options:\\n --help Show this help\\n`);\n log(`Registry:\\n Set BABELIZE_REGISTRY to override the registry URL (default ${REGISTRY_URL}).`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n const command = args[0];\n\n if (command === \"--help\" || command === \"-h\" || !command) {\n printUsage();\n return;\n }\n\n const aliases = resolveAliases();\n\n try {\n if (command === \"add\") {\n const names = args.slice(1);\n if (names.length === 0) {\n error(\"No components specified. Usage: babelize add <component...>\");\n process.exit(1);\n }\n await addComponents(names, aliases);\n } else if (command === \"list\") {\n await listComponents();\n } else {\n error(`Unknown command: ${command}`);\n printUsage();\n process.exit(1);\n }\n } catch (err) {\n error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain();\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, join } from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\n\nconst REGISTRY_URL = process.env.BABELIZE_REGISTRY ?? \"https://elements.babelize.co/r\";\nconst BASE_URL = REGISTRY_URL.replace(/\\/r\\/?$/, \"\");\n\nconst DEFAULT_ALIASES = {\n components: \"@/components\",\n ui: \"@/components/ui\",\n lib: \"@/lib\",\n utils: \"@/lib/utils\",\n hooks: \"@/hooks\",\n};\n\nconst GREEN = \"\\u001b[32m\";\nconst RED = \"\\u001b[31m\";\nconst CYAN = \"\\u001b[36m\";\nconst BOLD = \"\\u001b[1m\";\nconst RESET = \"\\u001b[0m\";\n\ninterface RegistryFile {\n path: string;\n type: string;\n content?: string;\n}\n\ninterface RegistryItem {\n $schema?: string;\n name: string;\n type: string;\n title?: string;\n description?: string;\n dependencies?: string[];\n registryDependencies?: string[];\n files?: RegistryFile[];\n}\n\nconst projectRoot = process.cwd();\n\nfunction log(message = \"\"): void {\n process.stdout.write(`${message}\\n`);\n}\n\nfunction error(message: string): void {\n process.stderr.write(`${RED}${message}${RESET}\\n`);\n}\n\nfunction readComponentsJson(): { aliases?: Record<string, string> } {\n try {\n return JSON.parse(readFileSync(join(projectRoot, \"components.json\"), \"utf8\"));\n } catch {\n return {};\n }\n}\n\nfunction resolveAliases(): Record<string, string> {\n const user = readComponentsJson().aliases ?? {};\n return { ...DEFAULT_ALIASES, ...user };\n}\n\nfunction aliasToDir(alias: string): string {\n return alias.replace(/^@\\//, \"\");\n}\n\nasync function fetchItem(nameOrUrl: string): Promise<RegistryItem> {\n // registryDependencies are absolute URLs, because the shadcn CLI resolves bare\n // names against its own registry. Accept both forms.\n const url = /^https?:\\/\\//.test(nameOrUrl) ? nameOrUrl : `${REGISTRY_URL}/${nameOrUrl}.json`;\n const res = await fetch(url);\n if (!res.ok) {\n throw new Error(`Failed to fetch \"${nameOrUrl}\" from ${url} (HTTP ${res.status}).`);\n }\n return (await res.json()) as RegistryItem;\n}\n\nfunction detectPackageManager(): string {\n if (existsSync(join(projectRoot, \"bun.lock\")) || existsSync(join(projectRoot, \"bun.lockb\"))) {\n return \"bun\";\n }\n if (existsSync(join(projectRoot, \"pnpm-lock.yaml\"))) return \"pnpm\";\n if (existsSync(join(projectRoot, \"yarn.lock\"))) return \"yarn\";\n return \"npm\";\n}\n\nfunction installDependencies(pm: string, deps: string[]): void {\n const args = pm === \"npm\" ? [\"install\", ...deps] : [\"add\", ...deps];\n log(`\\n${CYAN}Installing dependencies with ${pm}${RESET}`);\n const result = spawnSync(pm, args, { cwd: projectRoot, stdio: \"inherit\" });\n if (result.status !== 0) process.exit(result.status ?? 1);\n}\n\nfunction resolveDestination(file: RegistryFile, aliases: Record<string, string>): string {\n const dir =\n file.type === \"registry:lib\" ? aliasToDir(aliases.lib) : aliasToDir(aliases.components);\n const pathInDir = file.path.replace(/^(components|lib|ui|hooks)\\//, \"\");\n return join(projectRoot, dir, pathInDir);\n}\n\nfunction rewriteImports(content: string, aliases: Record<string, string>): string {\n // Longest specifier first: \"@/lib/utils\" is a prefix of nothing here, but the\n // hook path must not be partially rewritten by a shorter rule later.\n return content\n .replaceAll(\"@/lib/use-controllable-state\", `${aliases.lib}/use-controllable-state`)\n .replaceAll(\"@/lib/utils\", aliases.utils);\n}\n\nfunction writeItem(\n item: RegistryItem,\n aliases: Record<string, string>,\n written: Set<string>,\n): void {\n for (const file of item.files ?? []) {\n if (!file.content) continue;\n const dest = resolveDestination(file, aliases);\n if (written.has(dest)) continue;\n mkdirSync(dirname(dest), { recursive: true });\n writeFileSync(dest, rewriteImports(file.content, aliases), \"utf8\");\n written.add(dest);\n log(` ${GREEN}✓${RESET} ${basename(dest)}`);\n }\n}\n\nasync function addComponents(names: string[], aliases: Record<string, string>): Promise<void> {\n const visited = new Set<string>();\n const written = new Set<string>();\n const deps = new Set<string>();\n\n async function addItem(name: string): Promise<void> {\n if (visited.has(name)) return;\n visited.add(name);\n\n const item = await fetchItem(name);\n log(`\\n${BOLD}${item.title ?? item.name}${RESET}`);\n if (item.description) log(` ${item.description}`);\n\n for (const dep of item.dependencies ?? []) deps.add(dep);\n writeItem(item, aliases, written);\n\n for (const dep of item.registryDependencies ?? []) {\n await addItem(dep);\n }\n }\n\n for (const name of names) {\n await addItem(name);\n }\n\n if (deps.size > 0) {\n installDependencies(detectPackageManager(), [...deps]);\n }\n\n log(`\\n${GREEN}${BOLD}Done.${RESET} Components written to ${aliases.components}.`);\n}\n\nasync function listComponents(): Promise<void> {\n const res = await fetch(`${BASE_URL}/registry.json`);\n if (!res.ok) {\n throw new Error(`Failed to fetch registry index (HTTP ${res.status}).`);\n }\n const index = (await res.json()) as { name: string; items: RegistryItem[] };\n log(`${BOLD}${index.name}${RESET} registry\\n`);\n for (const item of index.items) {\n const title = item.title ?? item.name;\n log(` ${CYAN}${item.name}${RESET} — ${item.description ?? title}`);\n }\n log(`\\nInstall a component:\\n npx shadcn@latest add @elements/<component>`);\n log(` npx @babelize/elements add <component>`);\n}\n\nfunction printUsage(): void {\n log(`${BOLD}Babelize Elements CLI${RESET}`);\n log(`\\nUsage:\\n babelize add <component...> Install components into your project`);\n log(` babelize list List available components\\n`);\n log(`Options:\\n --help Show this help\\n`);\n log(`Registry:\\n Set BABELIZE_REGISTRY to override the registry URL (default ${REGISTRY_URL}).`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n const command = args[0];\n\n if (command === \"--help\" || command === \"-h\" || !command) {\n printUsage();\n return;\n }\n\n const aliases = resolveAliases();\n\n try {\n if (command === \"add\") {\n const names = args.slice(1);\n if (names.length === 0) {\n error(\"No components specified. Usage: babelize add <component...>\");\n process.exit(1);\n }\n await addComponents(names, aliases);\n } else if (command === \"list\") {\n await listComponents();\n } else {\n error(`Unknown command: ${command}`);\n printUsage();\n process.exit(1);\n }\n } catch (err) {\n error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n}\n\nmain();\n"],"mappings":"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","names":[]}
|