@marwes-ui/cli 0.1.0
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/CHANGELOG.md +14 -0
- package/LICENSE +21 -0
- package/README.md +82 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +845 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.js +843 -0
- package/dist/index.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/command-runner.ts","../src/package-manager.ts","../src/recipes.ts","../src/doctor.ts","../src/patchers.ts","../src/init.ts","../src/create.ts","../src/index.ts"],"names":["resolve","installCommand","join","exitCode","access","readFile"],"mappings":"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","file":"index.js","sourcesContent":["import { spawn } from \"node:child_process\"\nimport type { ShellCommand } from \"./package-manager\"\n\nexport type CommandRunner = (\n command: ShellCommand,\n options: {\n cwd: string\n },\n) => Promise<number>\n\nexport const defaultCommandRunner: CommandRunner = (command, options) => {\n return new Promise((resolve, reject) => {\n const child = spawn(command.command, command.args, {\n cwd: options.cwd,\n stdio: \"inherit\",\n shell: process.platform === \"win32\",\n })\n\n child.on(\"error\", reject)\n child.on(\"exit\", (code) => resolve(code ?? 1))\n })\n}\n","import { access } from \"node:fs/promises\"\nimport { join } from \"node:path\"\nimport type { PackageManager } from \"./recipes\"\n\nexport type ShellCommand = {\n command: string\n args: string[]\n}\n\nasync function exists(path: string): Promise<boolean> {\n try {\n await access(path)\n return true\n } catch {\n return false\n }\n}\n\nexport async function detectPackageManager(cwd: string): Promise<PackageManager> {\n if (await exists(join(cwd, \"pnpm-lock.yaml\"))) {\n return \"pnpm\"\n }\n\n if ((await exists(join(cwd, \"bun.lockb\"))) || (await exists(join(cwd, \"bun.lock\")))) {\n return \"bun\"\n }\n\n if (await exists(join(cwd, \"yarn.lock\"))) {\n return \"yarn\"\n }\n\n if (await exists(join(cwd, \"package-lock.json\"))) {\n return \"npm\"\n }\n\n return \"pnpm\"\n}\n\nexport function installCommand(\n packageManager: PackageManager,\n packages: readonly string[],\n): ShellCommand {\n if (packageManager === \"npm\") {\n return { command: \"npm\", args: [\"install\", ...packages] }\n }\n\n return { command: packageManager, args: [\"add\", ...packages] }\n}\n\nexport function runScriptCommand(packageManager: PackageManager, scriptName: string): ShellCommand {\n if (packageManager === \"npm\" || packageManager === \"pnpm\" || packageManager === \"bun\") {\n return { command: packageManager, args: [\"run\", scriptName] }\n }\n\n return { command: \"yarn\", args: [scriptName] }\n}\n\nexport function createViteCommand(\n packageManager: PackageManager,\n projectName: string,\n viteTemplate: string,\n): ShellCommand {\n if (packageManager === \"pnpm\") {\n return {\n command: \"pnpm\",\n args: [\"create\", \"vite@latest\", projectName, \"--\", \"--template\", viteTemplate],\n }\n }\n\n if (packageManager === \"npm\") {\n return {\n command: \"npm\",\n args: [\"create\", \"vite@latest\", projectName, \"--\", \"--template\", viteTemplate],\n }\n }\n\n if (packageManager === \"bun\") {\n return {\n command: \"bun\",\n args: [\"create\", \"vite\", projectName, \"--template\", viteTemplate],\n }\n }\n\n return {\n command: \"yarn\",\n args: [\"create\", \"vite\", projectName, \"--template\", viteTemplate],\n }\n}\n\nexport function formatShellCommand(command: ShellCommand): string {\n return [command.command, ...command.args].join(\" \")\n}\n","export const adapters = [\"react\", \"vue\", \"svelte\"] as const\nexport type Adapter = (typeof adapters)[number]\n\nexport const packageManagers = [\"pnpm\", \"npm\", \"yarn\", \"bun\"] as const\nexport type PackageManager = (typeof packageManagers)[number]\n\nexport const marwesTemplates = [\"react-ts\", \"vue-ts\", \"svelte-ts\"] as const\nexport type MarwesTemplate = (typeof marwesTemplates)[number]\n\nexport type AdapterRecipe = {\n adapter: Adapter\n displayName: string\n packageName: string\n installPackages: readonly string[]\n providerImport: string\n viteTemplate: MarwesTemplate\n rootFiles: readonly string[]\n}\n\nconst adapterRecipes: Record<Adapter, AdapterRecipe> = {\n react: {\n adapter: \"react\",\n displayName: \"React\",\n packageName: \"@marwes-ui/react\",\n installPackages: [\"@marwes-ui/react\", \"react\", \"react-dom\"],\n providerImport: \"MarwesProvider\",\n viteTemplate: \"react-ts\",\n rootFiles: [\"src/main.tsx\", \"src/main.jsx\"],\n },\n vue: {\n adapter: \"vue\",\n displayName: \"Vue\",\n packageName: \"@marwes-ui/vue\",\n installPackages: [\"@marwes-ui/vue\", \"vue\"],\n providerImport: \"MarwesProvider\",\n viteTemplate: \"vue-ts\",\n rootFiles: [\"src/App.vue\", \"src/main.ts\"],\n },\n svelte: {\n adapter: \"svelte\",\n displayName: \"Svelte\",\n packageName: \"@marwes-ui/svelte\",\n installPackages: [\"@marwes-ui/svelte\"],\n providerImport: \"MarwesProvider\",\n viteTemplate: \"svelte-ts\",\n rootFiles: [\"src/App.svelte\"],\n },\n}\n\nexport function isAdapter(value: string | undefined): value is Adapter {\n return adapters.includes(value as Adapter)\n}\n\nexport function isPackageManager(value: string | undefined): value is PackageManager {\n return packageManagers.includes(value as PackageManager)\n}\n\nexport function isMarwesTemplate(value: string | undefined): value is MarwesTemplate {\n return marwesTemplates.includes(value as MarwesTemplate)\n}\n\nexport function getAdapterRecipe(adapter: Adapter): AdapterRecipe {\n return adapterRecipes[adapter]\n}\n\nexport function adapterFromTemplate(template: MarwesTemplate): Adapter {\n if (template === \"react-ts\") {\n return \"react\"\n }\n\n if (template === \"vue-ts\") {\n return \"vue\"\n }\n\n return \"svelte\"\n}\n\nexport function templateFromAdapter(adapter: Adapter): MarwesTemplate {\n return getAdapterRecipe(adapter).viteTemplate\n}\n\nexport function packageRunnerCommand(\n packageManager: PackageManager,\n packageName = \"@marwes-ui/cli\",\n): string {\n if (packageManager === \"pnpm\") {\n return `pnpm dlx ${packageName}`\n }\n\n if (packageManager === \"npm\") {\n return `npx ${packageName}`\n }\n\n if (packageManager === \"yarn\") {\n return `yarn dlx ${packageName}`\n }\n\n return `bunx ${packageName}`\n}\n\nexport function createAgenticInitCommand(adapter: Adapter, packageManager: PackageManager): string {\n return `${packageRunnerCommand(packageManager)} init --adapter ${adapter} --agentic`\n}\n\nexport function createAiPrompt(adapter: Adapter, packageManager: PackageManager): string {\n const recipe = getAdapterRecipe(adapter)\n const installCommand = createAgenticInitCommand(adapter, packageManager)\n\n return [\n `Install and wire Marwes UI for a ${recipe.displayName} app using ${packageManager}.`,\n `Run: ${installCommand}.`,\n \"Follow the CLI output exactly.\",\n `If automatic patching is skipped, wrap the app root with ${recipe.providerImport} from ${recipe.packageName}.`,\n `Import Marwes components, enums, hooks/helpers, and theme tokens only from ${recipe.packageName}.`,\n \"Do not install @marwes-ui/core or @marwes-ui/presets directly.\",\n `Do not add a separate Marwes stylesheet import; the ${recipe.displayName} adapter loads the default styles automatically.`,\n \"Add a small smoke render, for example a Marwes Button, after the installer completes.\",\n ].join(\"\\n\")\n}\n\nexport function supportedAdaptersLabel(): string {\n return adapters.join(\"|\")\n}\n\nexport function supportedPackageManagersLabel(): string {\n return packageManagers.join(\"|\")\n}\n\nexport function supportedTemplatesLabel(): string {\n return marwesTemplates.join(\"|\")\n}\n","import { readFile, readdir } from \"node:fs/promises\"\nimport { join } from \"node:path\"\nimport type { CommandRunner } from \"./command-runner\"\nimport { defaultCommandRunner } from \"./command-runner\"\nimport { detectPackageManager, formatShellCommand, runScriptCommand } from \"./package-manager\"\nimport { type Adapter, type PackageManager, adapters, getAdapterRecipe, isAdapter } from \"./recipes\"\n\nexport type DoctorLevel = \"pass\" | \"warn\" | \"fail\"\n\nexport type DoctorItem = {\n level: DoctorLevel\n message: string\n fix?: string\n}\n\nexport type DoctorOptions = {\n adapter?: Adapter\n cwd?: string\n packageManager?: PackageManager\n runBuild?: boolean\n runner?: CommandRunner\n write?: (message: string) => void\n}\n\nexport type DoctorResult = {\n adapter?: Adapter\n items: DoctorItem[]\n exitCode: number\n}\n\ntype PackageJson = {\n scripts?: Record<string, string>\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n peerDependencies?: Record<string, string>\n optionalDependencies?: Record<string, string>\n}\n\nconst sourceExtensions = new Set([\".ts\", \".tsx\", \".js\", \".jsx\", \".vue\", \".svelte\", \".css\"])\n\nfunction dependencyVersion(packageJson: PackageJson, packageName: string): string | undefined {\n return (\n packageJson.dependencies?.[packageName] ??\n packageJson.devDependencies?.[packageName] ??\n packageJson.peerDependencies?.[packageName] ??\n packageJson.optionalDependencies?.[packageName]\n )\n}\n\nasync function readPackageJson(cwd: string): Promise<PackageJson> {\n const source = await readFile(join(cwd, \"package.json\"), \"utf8\")\n return JSON.parse(source) as PackageJson\n}\n\nasync function collectSourceFiles(directory: string): Promise<string[]> {\n const entries = await readdir(directory, { withFileTypes: true }).catch(() => [])\n const files: string[] = []\n\n for (const entry of entries) {\n const path = join(directory, entry.name)\n\n if (entry.isDirectory()) {\n if (entry.name === \"node_modules\" || entry.name === \"dist\" || entry.name === \".git\") {\n continue\n }\n\n files.push(...(await collectSourceFiles(path)))\n continue\n }\n\n const extension = entry.name.slice(entry.name.lastIndexOf(\".\"))\n if (sourceExtensions.has(extension)) {\n files.push(path)\n }\n }\n\n return files\n}\n\nfunction detectInstalledAdapter(packageJson: PackageJson): Adapter | undefined {\n return adapters.find((adapter) =>\n dependencyVersion(packageJson, getAdapterRecipe(adapter).packageName),\n )\n}\n\nasync function sourceContains(cwd: string, needle: string): Promise<boolean> {\n const sourceFiles = await collectSourceFiles(join(cwd, \"src\"))\n\n for (const file of sourceFiles) {\n const source = await readFile(file, \"utf8\")\n if (source.includes(needle)) {\n return true\n }\n }\n\n return false\n}\n\nfunction formatItem(item: DoctorItem): string {\n const prefix = item.level === \"pass\" ? \"[pass]\" : item.level === \"warn\" ? \"[warn]\" : \"[fail]\"\n return item.fix\n ? `${prefix} ${item.message}\\n fix: ${item.fix}`\n : `${prefix} ${item.message}`\n}\n\nexport async function runDoctor(options: DoctorOptions = {}): Promise<DoctorResult> {\n const cwd = options.cwd ?? process.cwd()\n const write = options.write ?? ((message: string) => console.log(message))\n const runner = options.runner ?? defaultCommandRunner\n const packageJson = await readPackageJson(cwd)\n const adapter = options.adapter ?? detectInstalledAdapter(packageJson)\n const items: DoctorItem[] = []\n\n if (!adapter) {\n items.push({\n level: \"fail\",\n message: \"No Marwes adapter dependency found.\",\n fix: \"Run marwes init --adapter react, marwes init --adapter vue, or marwes init --adapter svelte.\",\n })\n } else {\n const recipe = getAdapterRecipe(adapter)\n\n for (const packageName of recipe.installPackages) {\n if (dependencyVersion(packageJson, packageName)) {\n items.push({ level: \"pass\", message: `${packageName} is installed.` })\n } else {\n items.push({\n level: \"fail\",\n message: `${packageName} is missing.`,\n fix: `${options.packageManager ?? (await detectPackageManager(cwd))} add ${recipe.installPackages.join(\" \")}`,\n })\n }\n }\n\n const hasProvider = await sourceContains(cwd, \"MarwesProvider\")\n items.push(\n hasProvider\n ? { level: \"pass\", message: \"MarwesProvider is referenced in app source.\" }\n : {\n level: \"warn\",\n message: \"MarwesProvider was not found in app source.\",\n fix: `Wrap the app root with MarwesProvider from ${recipe.packageName}.`,\n },\n )\n }\n\n for (const internalPackage of [\"@marwes-ui/core\", \"@marwes-ui/presets\"]) {\n if (dependencyVersion(packageJson, internalPackage)) {\n items.push({\n level: \"warn\",\n message: `${internalPackage} is installed directly.`,\n fix: \"App projects should import from the public adapter package instead.\",\n })\n }\n }\n\n if (await sourceContains(cwd, \"@marwes-ui/presets/firstEdition/styles.css\")) {\n items.push({\n level: \"warn\",\n message: \"Manual Marwes preset stylesheet import found.\",\n fix: \"Remove the stylesheet import; adapter packages load the default styles automatically.\",\n })\n }\n\n if (options.runBuild) {\n const packageManager = options.packageManager ?? (await detectPackageManager(cwd))\n const scriptName = packageJson.scripts?.typecheck\n ? \"typecheck\"\n : packageJson.scripts?.build\n ? \"build\"\n : undefined\n\n if (!scriptName) {\n items.push({ level: \"warn\", message: \"No typecheck or build script found to run.\" })\n } else {\n const command = runScriptCommand(packageManager, scriptName)\n write(`Running ${formatShellCommand(command)}`)\n const exitCode = await runner(command, { cwd })\n items.push(\n exitCode === 0\n ? { level: \"pass\", message: `${scriptName} completed successfully.` }\n : { level: \"fail\", message: `${scriptName} failed.` },\n )\n }\n }\n\n for (const item of items) {\n write(formatItem(item))\n }\n\n const exitCode = items.some((item) => item.level === \"fail\") ? 1 : 0\n return { ...(adapter ? { adapter } : {}), items, exitCode }\n}\n\nexport function adapterFromString(value: string | undefined): Adapter | undefined {\n return isAdapter(value) ? value : undefined\n}\n","import { access, readFile, writeFile } from \"node:fs/promises\"\nimport { join } from \"node:path\"\nimport type { Adapter } from \"./recipes\"\n\nexport type PatchResult = {\n adapter: Adapter\n changed: boolean\n dryRun: boolean\n file?: string\n message: string\n}\n\nasync function fileExists(path: string): Promise<boolean> {\n try {\n await access(path)\n return true\n } catch {\n return false\n }\n}\n\nfunction insertImport(source: string, importLine: string): string {\n if (source.includes(importLine)) {\n return source\n }\n\n const lines = source.split(\"\\n\")\n let lastImportIndex = -1\n\n for (let index = 0; index < lines.length; index += 1) {\n if (lines[index]?.startsWith(\"import \")) {\n lastImportIndex = index\n }\n }\n\n if (lastImportIndex === -1) {\n return `${importLine}\\n${source}`\n }\n\n lines.splice(lastImportIndex + 1, 0, importLine)\n return lines.join(\"\\n\")\n}\n\nfunction indentBlock(source: string, indentation: string): string {\n return source\n .split(\"\\n\")\n .map((line) => (line.trim().length === 0 ? \"\" : `${indentation}${line}`))\n .join(\"\\n\")\n}\n\nasync function writeIfNeeded(path: string, source: string, dryRun: boolean): Promise<boolean> {\n const current = await readFile(path, \"utf8\")\n if (current === source) {\n return false\n }\n\n if (!dryRun) {\n await writeFile(path, source)\n }\n\n return true\n}\n\nasync function patchReact(cwd: string, dryRun: boolean): Promise<PatchResult> {\n const candidates = [\"src/main.tsx\", \"src/main.jsx\"]\n let relativeFile: string | undefined\n\n for (const candidate of candidates) {\n if (await fileExists(join(cwd, candidate))) {\n relativeFile = candidate\n break\n }\n }\n\n if (!relativeFile) {\n return {\n adapter: \"react\",\n changed: false,\n dryRun,\n message: \"No React Vite entrypoint found. Expected src/main.tsx or src/main.jsx.\",\n }\n }\n\n const file = join(cwd, relativeFile)\n const source = await readFile(file, \"utf8\")\n\n if (source.includes(\"MarwesProvider\")) {\n return {\n adapter: \"react\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"React entrypoint already references MarwesProvider.\",\n }\n }\n\n if (!source.includes(\"<App />\")) {\n return {\n adapter: \"react\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"React entrypoint did not contain the standard <App /> starter render.\",\n }\n }\n\n const withImport = insertImport(source, 'import { MarwesProvider } from \"@marwes-ui/react\"')\n const next = withImport.replace(\n \"<App />\",\n [\"<MarwesProvider>\", \" <App />\", \" </MarwesProvider>\"].join(\"\\n\"),\n )\n const changed = await writeIfNeeded(file, next, dryRun)\n\n return {\n adapter: \"react\",\n changed,\n dryRun,\n file: relativeFile,\n message: changed\n ? \"Wrapped the React root render with MarwesProvider.\"\n : \"React entrypoint already matched the expected MarwesProvider setup.\",\n }\n}\n\nfunction ensureVueScript(source: string): string {\n if (source.includes('MarwesProvider } from \"@marwes-ui/vue\"')) {\n return source\n }\n\n const importLine = 'import { MarwesProvider } from \"@marwes-ui/vue\"'\n const scriptSetupMatch = source.match(/<script\\s+setup[^>]*>/)\n\n if (!scriptSetupMatch?.index && scriptSetupMatch?.index !== 0) {\n return `<script setup lang=\"ts\">\\n${importLine}\\n</script>\\n\\n${source}`\n }\n\n const insertAt = scriptSetupMatch.index + scriptSetupMatch[0].length\n return `${source.slice(0, insertAt)}\\n${importLine}${source.slice(insertAt)}`\n}\n\nasync function patchVue(cwd: string, dryRun: boolean): Promise<PatchResult> {\n const relativeFile = \"src/App.vue\"\n const file = join(cwd, relativeFile)\n\n if (!(await fileExists(file))) {\n return {\n adapter: \"vue\",\n changed: false,\n dryRun,\n message: \"No Vue starter component found. Expected src/App.vue.\",\n }\n }\n\n const source = await readFile(file, \"utf8\")\n if (source.includes(\"<MarwesProvider\")) {\n return {\n adapter: \"vue\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"Vue starter component already contains MarwesProvider.\",\n }\n }\n\n const templateMatch = source.match(/<template>([\\s\\S]*?)<\\/template>/)\n if (!templateMatch) {\n return {\n adapter: \"vue\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"Vue starter component did not contain a standard <template> block.\",\n }\n }\n\n const innerTemplate = templateMatch[1]?.trim()\n if (!innerTemplate) {\n return {\n adapter: \"vue\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"Vue starter template was empty.\",\n }\n }\n\n const wrappedTemplate = [\n \"<template>\",\n \" <MarwesProvider>\",\n indentBlock(innerTemplate, \" \"),\n \" </MarwesProvider>\",\n \"</template>\",\n ].join(\"\\n\")\n const withProviderTemplate = source.replace(templateMatch[0], wrappedTemplate)\n const next = ensureVueScript(withProviderTemplate)\n const changed = await writeIfNeeded(file, next, dryRun)\n\n return {\n adapter: \"vue\",\n changed,\n dryRun,\n file: relativeFile,\n message: changed\n ? \"Wrapped the Vue starter template with MarwesProvider.\"\n : \"Vue starter component already matched the expected MarwesProvider setup.\",\n }\n}\n\nfunction blockMatches(source: string, tagName: \"script\" | \"style\"): string[] {\n return source.match(new RegExp(`<${tagName}[^>]*>[\\\\s\\\\S]*?<\\\\/${tagName}>`, \"g\")) ?? []\n}\n\nfunction removeBlocks(source: string, blocks: readonly string[]): string {\n return blocks.reduce((next, block) => next.replace(block, \"\"), source)\n}\n\nfunction ensureSvelteScript(scriptBlocks: readonly string[]): string {\n const importLine = ' import { MarwesProvider } from \"@marwes-ui/svelte\"'\n const script = scriptBlocks[0]\n\n if (!script) {\n return `<script lang=\"ts\">\\n${importLine}\\n</script>`\n }\n\n if (script.includes(\"MarwesProvider\")) {\n return script\n }\n\n return script.replace(/<script([^>]*)>/i, `<script$1>\\n${importLine}`)\n}\n\nasync function patchSvelte(cwd: string, dryRun: boolean): Promise<PatchResult> {\n const relativeFile = \"src/App.svelte\"\n const file = join(cwd, relativeFile)\n\n if (!(await fileExists(file))) {\n return {\n adapter: \"svelte\",\n changed: false,\n dryRun,\n message: \"No Svelte starter component found. Expected src/App.svelte.\",\n }\n }\n\n const source = await readFile(file, \"utf8\")\n if (source.includes(\"<MarwesProvider\")) {\n return {\n adapter: \"svelte\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"Svelte starter component already contains MarwesProvider.\",\n }\n }\n\n const scriptBlocks = blockMatches(source, \"script\")\n const styleBlocks = blockMatches(source, \"style\")\n const body = removeBlocks(source, [...scriptBlocks, ...styleBlocks]).trim()\n\n if (!body) {\n return {\n adapter: \"svelte\",\n changed: false,\n dryRun,\n file: relativeFile,\n message: \"Svelte starter component had no markup to wrap.\",\n }\n }\n\n const script = ensureSvelteScript(scriptBlocks)\n const styles = styleBlocks.join(\"\\n\\n\")\n const next = [\n script,\n \"\",\n \"<MarwesProvider>\",\n indentBlock(body, \" \"),\n \"</MarwesProvider>\",\n styles ? `\\n${styles}` : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\")\n const changed = await writeIfNeeded(file, `${next.trimEnd()}\\n`, dryRun)\n\n return {\n adapter: \"svelte\",\n changed,\n dryRun,\n file: relativeFile,\n message: changed\n ? \"Wrapped the Svelte starter markup with MarwesProvider.\"\n : \"Svelte starter component already matched the expected MarwesProvider setup.\",\n }\n}\n\nexport async function patchProject(\n cwd: string,\n adapter: Adapter,\n dryRun: boolean,\n): Promise<PatchResult> {\n if (adapter === \"react\") {\n return patchReact(cwd, dryRun)\n }\n\n if (adapter === \"vue\") {\n return patchVue(cwd, dryRun)\n }\n\n return patchSvelte(cwd, dryRun)\n}\n","import type { CommandRunner } from \"./command-runner\"\nimport { defaultCommandRunner } from \"./command-runner\"\nimport { type DoctorResult, runDoctor } from \"./doctor\"\nimport { detectPackageManager, formatShellCommand, installCommand } from \"./package-manager\"\nimport { type PatchResult, patchProject } from \"./patchers\"\nimport { type Adapter, type PackageManager, getAdapterRecipe } from \"./recipes\"\n\nexport type InitOptions = {\n adapter: Adapter\n cwd?: string\n packageManager?: PackageManager\n dryRun?: boolean\n agentic?: boolean\n yes?: boolean\n noInstall?: boolean\n noPatch?: boolean\n runner?: CommandRunner\n write?: (message: string) => void\n}\n\nexport type InitResult = {\n adapter: Adapter\n packageManager: PackageManager\n installCommand: string\n installSkipped: boolean\n patchSkipped: boolean\n patch?: PatchResult\n doctor?: DoctorResult\n exitCode: number\n}\n\nfunction providerGuidance(adapter: Adapter): string {\n const recipe = getAdapterRecipe(adapter)\n return `Manual follow-up: wrap the app root with ${recipe.providerImport} from ${recipe.packageName}.`\n}\n\nfunction shouldPrintProviderGuidance(patch: PatchResult | undefined): boolean {\n if (!patch || patch.changed) {\n return false\n }\n\n return !patch.message.toLowerCase().includes(\"already\")\n}\n\nfunction writeAgenticBoundaryRules(adapter: Adapter, write: (message: string) => void): void {\n const recipe = getAdapterRecipe(adapter)\n write(\"Agentic rules:\")\n write(`- Import Marwes APIs only from ${recipe.packageName}.`)\n write(\"- Do not install @marwes-ui/core or @marwes-ui/presets directly.\")\n write(\"- Do not add a separate Marwes stylesheet import.\")\n}\n\nexport async function runInit(options: InitOptions): Promise<InitResult> {\n const cwd = options.cwd ?? process.cwd()\n const write = options.write ?? ((message: string) => console.log(message))\n const runner = options.runner ?? defaultCommandRunner\n const recipe = getAdapterRecipe(options.adapter)\n const packageManager = options.packageManager ?? (await detectPackageManager(cwd))\n const command = installCommand(packageManager, recipe.installPackages)\n const commandLabel = formatShellCommand(command)\n const dryRun = options.dryRun === true\n const agentic = options.agentic === true\n const noInstall = options.noInstall === true\n const noPatch = options.noPatch === true\n\n write(`Marwes init: ${recipe.displayName}`)\n write(`Package manager: ${packageManager}`)\n if (agentic) {\n write(\"Mode: agentic\")\n }\n\n let exitCode = 0\n\n if (noInstall) {\n write(`Install skipped. Run manually: ${commandLabel}`)\n } else if (dryRun) {\n write(`[dry-run] ${commandLabel}`)\n } else {\n exitCode = await runner(command, { cwd })\n if (exitCode !== 0) {\n return {\n adapter: options.adapter,\n packageManager,\n installCommand: commandLabel,\n installSkipped: false,\n patchSkipped: noPatch,\n exitCode,\n }\n }\n }\n\n let patch: PatchResult | undefined\n if (noPatch) {\n write(\"Patch skipped.\")\n } else {\n patch = await patchProject(cwd, options.adapter, dryRun)\n const patchLabel = patch.file ? `${patch.file}: ${patch.message}` : patch.message\n write(dryRun && patch.changed ? `[dry-run] ${patchLabel}` : patchLabel)\n }\n\n let doctor: DoctorResult | undefined\n if (agentic) {\n if (shouldPrintProviderGuidance(patch) || noPatch) {\n write(providerGuidance(options.adapter))\n }\n\n writeAgenticBoundaryRules(options.adapter, write)\n\n if (dryRun) {\n write(`[dry-run] marwes doctor --adapter ${options.adapter}`)\n } else {\n write(\"Marwes doctor:\")\n doctor = await runDoctor({\n adapter: options.adapter,\n cwd,\n packageManager,\n runner,\n write,\n })\n exitCode = doctor.exitCode\n }\n }\n\n write(\"Marwes init complete.\")\n\n return {\n adapter: options.adapter,\n packageManager,\n installCommand: commandLabel,\n installSkipped: noInstall || dryRun,\n patchSkipped: noPatch,\n ...(patch ? { patch } : {}),\n ...(doctor ? { doctor } : {}),\n exitCode,\n }\n}\n","import { resolve } from \"node:path\"\nimport type { CommandRunner } from \"./command-runner\"\nimport { defaultCommandRunner } from \"./command-runner\"\nimport { runInit } from \"./init\"\nimport { createViteCommand, detectPackageManager, formatShellCommand } from \"./package-manager\"\nimport { type MarwesTemplate, type PackageManager, adapterFromTemplate } from \"./recipes\"\n\nexport type CreateOptions = {\n projectName: string\n template: MarwesTemplate\n cwd?: string\n packageManager?: PackageManager\n dryRun?: boolean\n noInstall?: boolean\n runner?: CommandRunner\n write?: (message: string) => void\n}\n\nexport type CreateResult = {\n projectName: string\n template: MarwesTemplate\n exitCode: number\n}\n\nexport async function runCreate(options: CreateOptions): Promise<CreateResult> {\n const cwd = options.cwd ?? process.cwd()\n const write = options.write ?? ((message: string) => console.log(message))\n const runner = options.runner ?? defaultCommandRunner\n const packageManager = options.packageManager ?? (await detectPackageManager(cwd))\n const command = createViteCommand(packageManager, options.projectName, options.template)\n const adapter = adapterFromTemplate(options.template)\n const targetCwd = resolve(cwd, options.projectName)\n\n write(`Create Marwes app: ${options.projectName}`)\n write(`Template: ${options.template}`)\n\n if (options.dryRun) {\n write(`[dry-run] ${formatShellCommand(command)}`)\n write(`[dry-run] marwes init --adapter ${adapter}`)\n return {\n projectName: options.projectName,\n template: options.template,\n exitCode: 0,\n }\n }\n\n const createExitCode = await runner(command, { cwd })\n if (createExitCode !== 0) {\n return {\n projectName: options.projectName,\n template: options.template,\n exitCode: createExitCode,\n }\n }\n\n const initResult = await runInit({\n adapter,\n cwd: targetCwd,\n packageManager,\n noInstall: options.noInstall === true,\n runner,\n write,\n })\n\n return {\n projectName: options.projectName,\n template: options.template,\n exitCode: initResult.exitCode,\n }\n}\n","import { parseArgs } from \"node:util\"\nimport { type CreateOptions, runCreate } from \"./create\"\nimport { type DoctorOptions, adapterFromString, runDoctor } from \"./doctor\"\nimport { type InitOptions, runInit } from \"./init\"\nimport {\n type PackageManager,\n createAiPrompt,\n isMarwesTemplate,\n isPackageManager,\n supportedAdaptersLabel,\n supportedPackageManagersLabel,\n supportedTemplatesLabel,\n} from \"./recipes\"\n\nexport { runCreate, type CreateOptions, type CreateResult } from \"./create\"\nexport { runDoctor, type DoctorItem, type DoctorOptions, type DoctorResult } from \"./doctor\"\nexport { runInit, type InitOptions, type InitResult } from \"./init\"\nexport {\n adapters,\n createAgenticInitCommand,\n createAiPrompt,\n getAdapterRecipe,\n marwesTemplates,\n packageRunnerCommand,\n packageManagers,\n type Adapter,\n type AdapterRecipe,\n type MarwesTemplate,\n type PackageManager,\n} from \"./recipes\"\n\ntype CliOptions = {\n cwd?: string\n write?: (message: string) => void\n}\n\nfunction writeHelp(write: (message: string) => void): void {\n write(`Marwes CLI\n\nCommands:\n marwes init --adapter <${supportedAdaptersLabel()}> [--agentic]\n marwes doctor [--adapter <${supportedAdaptersLabel()}]\n marwes ai-prompt --adapter <${supportedAdaptersLabel()}>\n marwes create <name> --template <${supportedTemplatesLabel()}>\n\nOptions:\n --pm <${supportedPackageManagersLabel()}>\n --agentic\n --dry-run\n --no-install\n --no-patch\n`)\n}\n\nfunction parsePackageManager(value: unknown): PackageManager | undefined {\n return typeof value === \"string\" && isPackageManager(value) ? value : undefined\n}\n\nexport async function runMarwesCli(argv: string[], options: CliOptions = {}): Promise<number> {\n const write = options.write ?? ((message: string) => console.log(message))\n const [command, ...args] = argv\n\n if (!command || command === \"help\" || command === \"--help\" || command === \"-h\") {\n writeHelp(write)\n return 0\n }\n\n if (command === \"init\") {\n const parsed = parseArgs({\n args,\n options: {\n adapter: { type: \"string\" },\n pm: { type: \"string\" },\n agentic: { type: \"boolean\" },\n \"dry-run\": { type: \"boolean\" },\n yes: { type: \"boolean\" },\n \"no-install\": { type: \"boolean\" },\n \"no-patch\": { type: \"boolean\" },\n },\n allowPositionals: true,\n })\n const adapter = adapterFromString(String(parsed.values.adapter ?? \"\"))\n\n if (!adapter) {\n write(`Missing or invalid --adapter. Expected one of: ${supportedAdaptersLabel()}`)\n return 1\n }\n\n const packageManager = parsePackageManager(parsed.values.pm)\n const initOptions: InitOptions = {\n adapter,\n agentic: parsed.values.agentic === true,\n dryRun: parsed.values[\"dry-run\"] === true,\n yes: parsed.values.yes === true,\n noInstall: parsed.values[\"no-install\"] === true,\n noPatch: parsed.values[\"no-patch\"] === true,\n write,\n }\n\n if (options.cwd) {\n initOptions.cwd = options.cwd\n }\n\n if (packageManager) {\n initOptions.packageManager = packageManager\n }\n\n const result = await runInit(initOptions)\n return result.exitCode\n }\n\n if (command === \"doctor\") {\n const parsed = parseArgs({\n args,\n options: {\n adapter: { type: \"string\" },\n pm: { type: \"string\" },\n \"run-build\": { type: \"boolean\" },\n },\n allowPositionals: true,\n })\n const adapter = adapterFromString(String(parsed.values.adapter ?? \"\"))\n const packageManager = parsePackageManager(parsed.values.pm)\n const doctorOptions: DoctorOptions = {\n runBuild: parsed.values[\"run-build\"] === true,\n write,\n }\n\n if (adapter) {\n doctorOptions.adapter = adapter\n }\n\n if (options.cwd) {\n doctorOptions.cwd = options.cwd\n }\n\n if (packageManager) {\n doctorOptions.packageManager = packageManager\n }\n\n const result = await runDoctor(doctorOptions)\n return result.exitCode\n }\n\n if (command === \"ai-prompt\") {\n const parsed = parseArgs({\n args,\n options: {\n adapter: { type: \"string\" },\n pm: { type: \"string\" },\n },\n allowPositionals: true,\n })\n const adapter = adapterFromString(String(parsed.values.adapter ?? \"\"))\n\n if (!adapter) {\n write(`Missing or invalid --adapter. Expected one of: ${supportedAdaptersLabel()}`)\n return 1\n }\n\n write(createAiPrompt(adapter, parsePackageManager(parsed.values.pm) ?? \"pnpm\"))\n return 0\n }\n\n if (command === \"create\") {\n return runCreateMarwesCli(args, options)\n }\n\n write(`Unknown command: ${command}`)\n writeHelp(write)\n return 1\n}\n\nexport async function runCreateMarwesCli(\n argv: string[],\n options: CliOptions = {},\n): Promise<number> {\n const write = options.write ?? ((message: string) => console.log(message))\n const parsed = parseArgs({\n args: argv,\n options: {\n template: { type: \"string\" },\n pm: { type: \"string\" },\n \"dry-run\": { type: \"boolean\" },\n \"no-install\": { type: \"boolean\" },\n },\n allowPositionals: true,\n })\n const projectName = parsed.positionals[0]\n const template = String(parsed.values.template ?? \"react-ts\")\n\n if (!projectName) {\n write(\"Missing project name.\")\n return 1\n }\n\n if (!isMarwesTemplate(template)) {\n write(`Invalid --template. Expected one of: ${supportedTemplatesLabel()}`)\n return 1\n }\n\n const packageManager = parsePackageManager(parsed.values.pm)\n const createOptions: CreateOptions = {\n projectName,\n template,\n dryRun: parsed.values[\"dry-run\"] === true,\n noInstall: parsed.values[\"no-install\"] === true,\n write,\n }\n\n if (options.cwd) {\n createOptions.cwd = options.cwd\n }\n\n if (packageManager) {\n createOptions.packageManager = packageManager\n }\n\n const result = await runCreate(createOptions)\n\n return result.exitCode\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@marwes-ui/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"private": false,
|
|
9
|
+
"type": "module",
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"bin": {
|
|
20
|
+
"marwes": "dist/cli.js",
|
|
21
|
+
"marwes-ui": "dist/cli.js"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"README.md",
|
|
26
|
+
"CHANGELOG.md"
|
|
27
|
+
],
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "24.10.10",
|
|
30
|
+
"rimraf": "6.1.2",
|
|
31
|
+
"tsup": "8.5.1",
|
|
32
|
+
"typescript": "5.9.3",
|
|
33
|
+
"vitest": "4.1.8"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"dev": "tsup --watch",
|
|
37
|
+
"build": "tsup",
|
|
38
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
39
|
+
"test:typecheck": "tsc -p tsconfig.test.json --noEmit",
|
|
40
|
+
"test": "NODE_ENV=test vitest run --config vitest.config.ts",
|
|
41
|
+
"clean": "rimraf dist",
|
|
42
|
+
"lint": "biome lint .",
|
|
43
|
+
"format": "biome format --write ."
|
|
44
|
+
}
|
|
45
|
+
}
|