assistant-ui 0.0.7 → 0.0.8
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/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -3
package/dist/index.js
CHANGED
|
@@ -175,7 +175,7 @@ import { Command as Command3 } from "commander";
|
|
|
175
175
|
// package.json
|
|
176
176
|
var package_default = {
|
|
177
177
|
name: "assistant-ui",
|
|
178
|
-
version: "0.0.
|
|
178
|
+
version: "0.0.8",
|
|
179
179
|
license: "MIT",
|
|
180
180
|
type: "module",
|
|
181
181
|
dependencies: {
|
|
@@ -189,8 +189,7 @@ var package_default = {
|
|
|
189
189
|
},
|
|
190
190
|
devDependencies: {
|
|
191
191
|
"@assistant-ui/tsconfig": "workspace:*",
|
|
192
|
-
"@types/
|
|
193
|
-
"@types/node": "^22.2.0",
|
|
192
|
+
"@types/node": "^22.5.4",
|
|
194
193
|
tsup: "8.2.4"
|
|
195
194
|
},
|
|
196
195
|
files: [
|
|
@@ -218,7 +217,7 @@ var package_default = {
|
|
|
218
217
|
// src/commands/create.ts
|
|
219
218
|
import { Command as Command2 } from "commander";
|
|
220
219
|
import chalk2 from "chalk";
|
|
221
|
-
import { spawn as spawn2 } from "
|
|
220
|
+
import { spawn as spawn2 } from "cross-spawn";
|
|
222
221
|
var create = new Command2().name("create").description("create a new project").argument("[project-directory]").usage(`${chalk2.green("[project-directory]")} [options]`).option(
|
|
223
222
|
"--use-npm",
|
|
224
223
|
`
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/add.ts","../src/utils/get-component-target-path.ts","../src/utils/get-config.ts","../src/utils/resolve-import.ts","../src/index.ts","../package.json","../src/commands/create.ts"],"sourcesContent":["import { existsSync, mkdirSync } from \"node:fs\";\nimport path from \"node:path\";\nimport chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\nimport { getComponentTargetPath } from \"../utils/get-component-target-path\";\nimport { type Config, getConfig } from \"../utils/get-config\";\n\nconst SHADCN_CLI_VERSION = \"0.8.0\";\n\nconst getTargetPath = (config: Config, pathOverride: string) => {\n const baseConfig = pathOverride ?? getComponentTargetPath(config);\n if (!baseConfig) {\n console.warn(\n `Unable to determine the base path. Please run ${chalk.green(\n \"npx shadcn-ui init\",\n )} to create a components.json file.`,\n );\n process.exit(1);\n }\n\n return [baseConfig, path.join(baseConfig, \"assistant-ui\")] as const;\n};\n\nexport const add = new Command()\n .name(\"add\")\n .description(\"add a component to your project\")\n .argument(\"[components...]\", \"the components to add\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", true)\n .option(\"-o, --overwrite\", \"overwrite existing files.\", false)\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .option(\"-a, --all\", \"add all available components\", false)\n .option(\"-p, --path <path>\", \"the path to add the component to.\")\n .action(async (_, opts) => {\n const cwd = path.resolve(opts.cwd);\n const config = await getConfig(cwd);\n\n if (!config) {\n console.warn(\n `Configuration is missing. Please run ${chalk.green(\n \"npx shadcn-ui init\",\n )} to create a components.json file.`,\n );\n process.exit(1);\n }\n\n const [basePath, targetPath] = getTargetPath(config, opts.path);\n\n // create target path directory if it doesnt exist\n if (targetPath && !existsSync(targetPath)) {\n mkdirSync(targetPath, { recursive: true });\n }\n\n const child = spawn(\n \"npx\",\n [\n `shadcn-ui@${SHADCN_CLI_VERSION}`,\n ...process.argv.slice(2),\n \"--path\",\n basePath,\n ],\n {\n stdio: \"inherit\",\n env: {\n COMPONENTS_REGISTRY_URL: \"https://www.assistant-ui.com\",\n ...process.env,\n },\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n","import path from \"node:path\";\nimport type { Config } from \"./get-config\";\n\nexport function getComponentTargetPath(config: Config) {\n if (config.aliases.ui) {\n return config.resolvedPaths.ui;\n }\n\n const [parent, type] = [\"components\", \"ui\"];\n if (!(parent in config.resolvedPaths)) {\n return null;\n }\n\n return path.join(\n config.resolvedPaths[parent as keyof typeof config.resolvedPaths],\n type,\n );\n}\n","import path from \"node:path\";\nimport { cosmiconfig } from \"cosmiconfig\";\nimport { loadConfig } from \"tsconfig-paths\";\nimport { z } from \"zod\";\nimport { resolveImport } from \"./resolve-import\";\n\nconst explorer = cosmiconfig(\"components\", {\n searchPlaces: [\"components.json\"],\n});\n\nexport const rawConfigSchema = z.object({\n $schema: z.string().optional(),\n style: z.string(),\n rsc: z.coerce.boolean().default(false),\n tsx: z.coerce.boolean().default(true),\n tailwind: z.object({\n config: z.string(),\n css: z.string(),\n baseColor: z.string(),\n cssVariables: z.boolean().default(true),\n prefix: z.string().default(\"\").optional(),\n }),\n aliases: z.object({\n components: z.string(),\n utils: z.string(),\n ui: z.string().optional(),\n }),\n});\n\nexport type RawConfig = z.infer<typeof rawConfigSchema>;\n\nexport const configSchema = rawConfigSchema.extend({\n resolvedPaths: z.object({\n tailwindConfig: z.string(),\n tailwindCss: z.string(),\n utils: z.string(),\n components: z.string(),\n ui: z.string(),\n }),\n});\n\nexport type Config = z.infer<typeof configSchema>;\n\nexport async function getConfig(cwd: string) {\n const config = await getRawConfig(cwd);\n\n if (!config) {\n return null;\n }\n\n return resolveConfigPaths(cwd, config);\n}\n\nexport function resolveConfigPaths(cwd: string, config: RawConfig) {\n // Read tsconfig.json.\n const tsConfig = loadConfig(cwd);\n\n if (tsConfig.resultType === \"failed\") {\n throw new Error(\n `Failed to load ${config.tsx ? \"tsconfig\" : \"jsconfig\"}.json. ${\n tsConfig.message ?? \"\"\n }`.trim(),\n );\n }\n\n return configSchema.parse({\n ...config,\n resolvedPaths: {\n tailwindConfig: path.resolve(cwd, config.tailwind.config),\n tailwindCss: path.resolve(cwd, config.tailwind.css),\n utils: resolveImport(config.aliases[\"utils\"], tsConfig),\n components: resolveImport(config.aliases[\"components\"], tsConfig),\n ui: config.aliases[\"ui\"]\n ? resolveImport(config.aliases[\"ui\"], tsConfig)\n : resolveImport(config.aliases[\"components\"], tsConfig),\n },\n });\n}\n\nexport async function getRawConfig(cwd: string): Promise<RawConfig | null> {\n try {\n const configResult = await explorer.search(cwd);\n\n if (!configResult) {\n return null;\n }\n\n return rawConfigSchema.parse(configResult.config);\n } catch (error) {\n throw new Error(`Invalid configuration found in ${cwd}/components.json.`);\n }\n}\n","import {\n type ConfigLoaderSuccessResult,\n createMatchPath,\n} from \"tsconfig-paths\";\n\nexport function resolveImport(\n importPath: string,\n config: Pick<ConfigLoaderSuccessResult, \"absoluteBaseUrl\" | \"paths\">,\n) {\n return createMatchPath(config.absoluteBaseUrl, config.paths)(\n importPath,\n undefined,\n () => true,\n [\".ts\", \".tsx\"],\n );\n}\n","#!/usr/bin/env node\n\nimport { add } from \"@/src/commands/add\";\nimport { Command } from \"commander\";\n\nimport packageJson from \"../package.json\";\nimport { create } from \"./commands/create\";\n\nprocess.on(\"SIGINT\", () => process.exit(0));\nprocess.on(\"SIGTERM\", () => process.exit(0));\n\nasync function main() {\n const program = new Command()\n .name(\"assistant-ui\")\n .description(\"add components and dependencies to your project\")\n .version(\n packageJson.version || \"1.0.0\",\n \"-v, --version\",\n \"display the version number\",\n );\n\n program.addCommand(add);\n program.addCommand(create);\n\n program.parse();\n}\n\nmain();\n","{\n \"name\": \"assistant-ui\",\n \"version\": \"0.0.7\",\n \"license\": \"MIT\",\n \"type\": \"module\",\n \"dependencies\": {\n \"chalk\": \"^5.3.0\",\n \"commander\": \"^12.1.0\",\n \"cosmiconfig\": \"^9.0.0\",\n \"cross-spawn\": \"^7.0.3\",\n \"shadcn-ui\": \"0.8.0\",\n \"tsconfig-paths\": \"^4.2.0\",\n \"zod\": \"^3.23.8\"\n },\n \"devDependencies\": {\n \"@assistant-ui/tsconfig\": \"workspace:*\",\n \"@types/cross-spawn\": \"^6.0.6\",\n \"@types/node\": \"^22.2.0\",\n \"tsup\": \"8.2.4\"\n },\n \"files\": [\n \"dist\",\n \"README.md\"\n ],\n \"bin\": \"./dist/index.js\",\n \"scripts\": {\n \"build\": \"tsup src/index.ts --format esm --sourcemap --clean\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"provenance\": true\n },\n \"homepage\": \"https://assistant-ui.com/\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/Yonom/assistant-ui.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/Yonom/assistant-ui/issues\"\n }\n}\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { spawn } from \"child_process\";\n\nexport const create = new Command()\n .name(\"create\")\n .description(\"create a new project\")\n .argument(\"[project-directory]\")\n .usage(`${chalk.green(\"[project-directory]\")} [options]`)\n .option(\n \"--use-npm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using npm\n`,\n )\n .option(\n \"--use-pnpm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using pnpm\n`,\n )\n .option(\n \"--use-yarn\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Yarn\n`,\n )\n .option(\n \"--use-bun\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Bun\n`,\n )\n .option(\n \"--skip-install\",\n `\n\n Explicitly tell the CLI to skip installing packages\n`,\n )\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `create-next-app@latest`,\n ...process.argv.slice(3),\n \"-e\",\n \"https://github.com/Yonom/assistant-ui-starter\",\n ],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":"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","names":["path","path","path","path","Command","Command","chalk","spawn","Command"]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/add.ts","../src/utils/get-component-target-path.ts","../src/utils/get-config.ts","../src/utils/resolve-import.ts","../src/index.ts","../package.json","../src/commands/create.ts"],"sourcesContent":["import { existsSync, mkdirSync } from \"node:fs\";\nimport path from \"node:path\";\nimport chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\nimport { getComponentTargetPath } from \"../utils/get-component-target-path\";\nimport { type Config, getConfig } from \"../utils/get-config\";\n\nconst SHADCN_CLI_VERSION = \"0.8.0\";\n\nconst getTargetPath = (config: Config, pathOverride: string) => {\n const baseConfig = pathOverride ?? getComponentTargetPath(config);\n if (!baseConfig) {\n console.warn(\n `Unable to determine the base path. Please run ${chalk.green(\n \"npx shadcn-ui init\",\n )} to create a components.json file.`,\n );\n process.exit(1);\n }\n\n return [baseConfig, path.join(baseConfig, \"assistant-ui\")] as const;\n};\n\nexport const add = new Command()\n .name(\"add\")\n .description(\"add a component to your project\")\n .argument(\"[components...]\", \"the components to add\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", true)\n .option(\"-o, --overwrite\", \"overwrite existing files.\", false)\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .option(\"-a, --all\", \"add all available components\", false)\n .option(\"-p, --path <path>\", \"the path to add the component to.\")\n .action(async (_, opts) => {\n const cwd = path.resolve(opts.cwd);\n const config = await getConfig(cwd);\n\n if (!config) {\n console.warn(\n `Configuration is missing. Please run ${chalk.green(\n \"npx shadcn-ui init\",\n )} to create a components.json file.`,\n );\n process.exit(1);\n }\n\n const [basePath, targetPath] = getTargetPath(config, opts.path);\n\n // create target path directory if it doesnt exist\n if (targetPath && !existsSync(targetPath)) {\n mkdirSync(targetPath, { recursive: true });\n }\n\n const child = spawn(\n \"npx\",\n [\n `shadcn-ui@${SHADCN_CLI_VERSION}`,\n ...process.argv.slice(2),\n \"--path\",\n basePath,\n ],\n {\n stdio: \"inherit\",\n env: {\n COMPONENTS_REGISTRY_URL: \"https://www.assistant-ui.com\",\n ...process.env,\n },\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n","import path from \"node:path\";\nimport type { Config } from \"./get-config\";\n\nexport function getComponentTargetPath(config: Config) {\n if (config.aliases.ui) {\n return config.resolvedPaths.ui;\n }\n\n const [parent, type] = [\"components\", \"ui\"];\n if (!(parent in config.resolvedPaths)) {\n return null;\n }\n\n return path.join(\n config.resolvedPaths[parent as keyof typeof config.resolvedPaths],\n type,\n );\n}\n","import path from \"node:path\";\nimport { cosmiconfig } from \"cosmiconfig\";\nimport { loadConfig } from \"tsconfig-paths\";\nimport { z } from \"zod\";\nimport { resolveImport } from \"./resolve-import\";\n\nconst explorer = cosmiconfig(\"components\", {\n searchPlaces: [\"components.json\"],\n});\n\nexport const rawConfigSchema = z.object({\n $schema: z.string().optional(),\n style: z.string(),\n rsc: z.coerce.boolean().default(false),\n tsx: z.coerce.boolean().default(true),\n tailwind: z.object({\n config: z.string(),\n css: z.string(),\n baseColor: z.string(),\n cssVariables: z.boolean().default(true),\n prefix: z.string().default(\"\").optional(),\n }),\n aliases: z.object({\n components: z.string(),\n utils: z.string(),\n ui: z.string().optional(),\n }),\n});\n\nexport type RawConfig = z.infer<typeof rawConfigSchema>;\n\nexport const configSchema = rawConfigSchema.extend({\n resolvedPaths: z.object({\n tailwindConfig: z.string(),\n tailwindCss: z.string(),\n utils: z.string(),\n components: z.string(),\n ui: z.string(),\n }),\n});\n\nexport type Config = z.infer<typeof configSchema>;\n\nexport async function getConfig(cwd: string) {\n const config = await getRawConfig(cwd);\n\n if (!config) {\n return null;\n }\n\n return resolveConfigPaths(cwd, config);\n}\n\nexport function resolveConfigPaths(cwd: string, config: RawConfig) {\n // Read tsconfig.json.\n const tsConfig = loadConfig(cwd);\n\n if (tsConfig.resultType === \"failed\") {\n throw new Error(\n `Failed to load ${config.tsx ? \"tsconfig\" : \"jsconfig\"}.json. ${\n tsConfig.message ?? \"\"\n }`.trim(),\n );\n }\n\n return configSchema.parse({\n ...config,\n resolvedPaths: {\n tailwindConfig: path.resolve(cwd, config.tailwind.config),\n tailwindCss: path.resolve(cwd, config.tailwind.css),\n utils: resolveImport(config.aliases[\"utils\"], tsConfig),\n components: resolveImport(config.aliases[\"components\"], tsConfig),\n ui: config.aliases[\"ui\"]\n ? resolveImport(config.aliases[\"ui\"], tsConfig)\n : resolveImport(config.aliases[\"components\"], tsConfig),\n },\n });\n}\n\nexport async function getRawConfig(cwd: string): Promise<RawConfig | null> {\n try {\n const configResult = await explorer.search(cwd);\n\n if (!configResult) {\n return null;\n }\n\n return rawConfigSchema.parse(configResult.config);\n } catch (error) {\n throw new Error(`Invalid configuration found in ${cwd}/components.json.`);\n }\n}\n","import {\n type ConfigLoaderSuccessResult,\n createMatchPath,\n} from \"tsconfig-paths\";\n\nexport function resolveImport(\n importPath: string,\n config: Pick<ConfigLoaderSuccessResult, \"absoluteBaseUrl\" | \"paths\">,\n) {\n return createMatchPath(config.absoluteBaseUrl, config.paths)(\n importPath,\n undefined,\n () => true,\n [\".ts\", \".tsx\"],\n );\n}\n","#!/usr/bin/env node\n\nimport { add } from \"@/src/commands/add\";\nimport { Command } from \"commander\";\n\nimport packageJson from \"../package.json\";\nimport { create } from \"./commands/create\";\n\nprocess.on(\"SIGINT\", () => process.exit(0));\nprocess.on(\"SIGTERM\", () => process.exit(0));\n\nasync function main() {\n const program = new Command()\n .name(\"assistant-ui\")\n .description(\"add components and dependencies to your project\")\n .version(\n packageJson.version || \"1.0.0\",\n \"-v, --version\",\n \"display the version number\",\n );\n\n program.addCommand(add);\n program.addCommand(create);\n\n program.parse();\n}\n\nmain();\n","{\n \"name\": \"assistant-ui\",\n \"version\": \"0.0.8\",\n \"license\": \"MIT\",\n \"type\": \"module\",\n \"dependencies\": {\n \"chalk\": \"^5.3.0\",\n \"commander\": \"^12.1.0\",\n \"cosmiconfig\": \"^9.0.0\",\n \"cross-spawn\": \"^7.0.3\",\n \"shadcn-ui\": \"0.8.0\",\n \"tsconfig-paths\": \"^4.2.0\",\n \"zod\": \"^3.23.8\"\n },\n \"devDependencies\": {\n \"@assistant-ui/tsconfig\": \"workspace:*\",\n \"@types/node\": \"^22.5.4\",\n \"tsup\": \"8.2.4\"\n },\n \"files\": [\n \"dist\",\n \"README.md\"\n ],\n \"bin\": \"./dist/index.js\",\n \"scripts\": {\n \"build\": \"tsup src/index.ts --format esm --sourcemap --clean\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"provenance\": true\n },\n \"homepage\": \"https://assistant-ui.com/\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/Yonom/assistant-ui.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/Yonom/assistant-ui/issues\"\n }\n}\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { spawn } from \"cross-spawn\";\n\nexport const create = new Command()\n .name(\"create\")\n .description(\"create a new project\")\n .argument(\"[project-directory]\")\n .usage(`${chalk.green(\"[project-directory]\")} [options]`)\n .option(\n \"--use-npm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using npm\n`,\n )\n .option(\n \"--use-pnpm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using pnpm\n`,\n )\n .option(\n \"--use-yarn\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Yarn\n`,\n )\n .option(\n \"--use-bun\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Bun\n`,\n )\n .option(\n \"--skip-install\",\n `\n\n Explicitly tell the CLI to skip installing packages\n`,\n )\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `create-next-app@latest`,\n ...process.argv.slice(3),\n \"-e\",\n \"https://github.com/Yonom/assistant-ui-starter\",\n ],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":"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","names":["path","path","path","path","Command","Command","chalk","spawn","Command"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "assistant-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
"zod": "^3.23.8"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@types/
|
|
17
|
-
"@types/node": "^22.2.0",
|
|
16
|
+
"@types/node": "^22.5.4",
|
|
18
17
|
"tsup": "8.2.4",
|
|
19
18
|
"@assistant-ui/tsconfig": "0.0.0"
|
|
20
19
|
},
|