@aristobyte-ui/cli 1.0.46

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.mjs ADDED
@@ -0,0 +1,645 @@
1
+ #!/usr/bin/env node
2
+ #!/usr/bin/env node
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __commonJS = (cb, mod) => function __require() {
10
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+
29
+ // ../../node_modules/picocolors/picocolors.js
30
+ var require_picocolors = __commonJS({
31
+ "../../node_modules/picocolors/picocolors.js"(exports, module) {
32
+ "use strict";
33
+ var p = process || {};
34
+ var argv = p.argv || [];
35
+ var env2 = p.env || {};
36
+ var isColorSupported = !(!!env2.NO_COLOR || argv.includes("--no-color")) && (!!env2.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env2.TERM !== "dumb" || !!env2.CI);
37
+ var formatter = (open, close, replace = open) => (input) => {
38
+ let string = "" + input, index = string.indexOf(close, open.length);
39
+ return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
40
+ };
41
+ var replaceClose = (string, close, replace, index) => {
42
+ let result = "", cursor = 0;
43
+ do {
44
+ result += string.substring(cursor, index) + replace;
45
+ cursor = index + close.length;
46
+ index = string.indexOf(close, cursor);
47
+ } while (~index);
48
+ return result + string.substring(cursor);
49
+ };
50
+ var createColors = (enabled = isColorSupported) => {
51
+ let f = enabled ? formatter : () => String;
52
+ return {
53
+ isColorSupported: enabled,
54
+ reset: f("\x1B[0m", "\x1B[0m"),
55
+ bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"),
56
+ dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"),
57
+ italic: f("\x1B[3m", "\x1B[23m"),
58
+ underline: f("\x1B[4m", "\x1B[24m"),
59
+ inverse: f("\x1B[7m", "\x1B[27m"),
60
+ hidden: f("\x1B[8m", "\x1B[28m"),
61
+ strikethrough: f("\x1B[9m", "\x1B[29m"),
62
+ black: f("\x1B[30m", "\x1B[39m"),
63
+ red: f("\x1B[31m", "\x1B[39m"),
64
+ green: f("\x1B[32m", "\x1B[39m"),
65
+ yellow: f("\x1B[33m", "\x1B[39m"),
66
+ blue: f("\x1B[34m", "\x1B[39m"),
67
+ magenta: f("\x1B[35m", "\x1B[39m"),
68
+ cyan: f("\x1B[36m", "\x1B[39m"),
69
+ white: f("\x1B[37m", "\x1B[39m"),
70
+ gray: f("\x1B[90m", "\x1B[39m"),
71
+ bgBlack: f("\x1B[40m", "\x1B[49m"),
72
+ bgRed: f("\x1B[41m", "\x1B[49m"),
73
+ bgGreen: f("\x1B[42m", "\x1B[49m"),
74
+ bgYellow: f("\x1B[43m", "\x1B[49m"),
75
+ bgBlue: f("\x1B[44m", "\x1B[49m"),
76
+ bgMagenta: f("\x1B[45m", "\x1B[49m"),
77
+ bgCyan: f("\x1B[46m", "\x1B[49m"),
78
+ bgWhite: f("\x1B[47m", "\x1B[49m"),
79
+ blackBright: f("\x1B[90m", "\x1B[39m"),
80
+ redBright: f("\x1B[91m", "\x1B[39m"),
81
+ greenBright: f("\x1B[92m", "\x1B[39m"),
82
+ yellowBright: f("\x1B[93m", "\x1B[39m"),
83
+ blueBright: f("\x1B[94m", "\x1B[39m"),
84
+ magentaBright: f("\x1B[95m", "\x1B[39m"),
85
+ cyanBright: f("\x1B[96m", "\x1B[39m"),
86
+ whiteBright: f("\x1B[97m", "\x1B[39m"),
87
+ bgBlackBright: f("\x1B[100m", "\x1B[49m"),
88
+ bgRedBright: f("\x1B[101m", "\x1B[49m"),
89
+ bgGreenBright: f("\x1B[102m", "\x1B[49m"),
90
+ bgYellowBright: f("\x1B[103m", "\x1B[49m"),
91
+ bgBlueBright: f("\x1B[104m", "\x1B[49m"),
92
+ bgMagentaBright: f("\x1B[105m", "\x1B[49m"),
93
+ bgCyanBright: f("\x1B[106m", "\x1B[49m"),
94
+ bgWhiteBright: f("\x1B[107m", "\x1B[49m")
95
+ };
96
+ };
97
+ module.exports = createColors();
98
+ module.exports.createColors = createColors;
99
+ }
100
+ });
101
+
102
+ // index.ts
103
+ var import_picocolors10 = __toESM(require_picocolors());
104
+ import { Command } from "commander";
105
+
106
+ // commands/add.ts
107
+ import { spinner } from "@clack/prompts";
108
+
109
+ // utils/installPackage.ts
110
+ import { execa } from "execa";
111
+ async function installPackage(pkgManager, pkg, dev = false) {
112
+ let args = [];
113
+ switch (pkgManager) {
114
+ case "npm":
115
+ args = ["install", pkg, dev ? "--save-dev" : "--save"];
116
+ break;
117
+ case "yarn":
118
+ args = ["add", pkg];
119
+ if (dev) args.push("-D");
120
+ break;
121
+ case "pnpm":
122
+ args = ["add", pkg];
123
+ if (dev) args.push("-D");
124
+ break;
125
+ case "bun":
126
+ args = ["add", pkg];
127
+ if (dev) args.push("-d");
128
+ break;
129
+ default:
130
+ throw new Error(`Unsupported package manager: ${pkgManager}`);
131
+ }
132
+ await execa(pkgManager, args, { stdio: "inherit" });
133
+ }
134
+
135
+ // commands/add.ts
136
+ var import_picocolors = __toESM(require_picocolors());
137
+ async function add(component) {
138
+ const s = spinner();
139
+ try {
140
+ s.start(`Installing ${component}...`);
141
+ if (component === "all") {
142
+ await installPackage("yarn", "@aristobyte-ui/react");
143
+ s.stop();
144
+ console.log(import_picocolors.default.green("\u2705 All components installed!"));
145
+ return;
146
+ }
147
+ const pkgName = `@aristobyte-ui/${component}`;
148
+ await installPackage("yarn", pkgName);
149
+ s.stop();
150
+ console.log(import_picocolors.default.green(`\u2705 Component ${component} installed!`));
151
+ } catch (err) {
152
+ s.stop();
153
+ console.error(
154
+ import_picocolors.default.red(`\u274C Failed to install component ${component}`),
155
+ err
156
+ );
157
+ }
158
+ }
159
+
160
+ // commands/init.ts
161
+ var import_picocolors2 = __toESM(require_picocolors());
162
+ import { execa as execa2 } from "execa";
163
+ import { select, text, spinner as spinner2 } from "@clack/prompts";
164
+ var TEMPLATES = [
165
+ {
166
+ id: "aristobyte-ui-template-nextjs-15-app-router",
167
+ name: "Next App Router",
168
+ desc: "A Next.js 15 with app-router directory template pre-configured with AristoByteUI.",
169
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-nextjs-15-app-router.git"
170
+ },
171
+ {
172
+ id: "aristobyte-ui-template-nextjs-15-pages",
173
+ name: "Next Pages",
174
+ desc: "A Next.js 15 with pages directory template pre-configured with AristoByteUI.",
175
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-nextjs-15-pages.git"
176
+ },
177
+ {
178
+ id: "aristobyte-ui-template-vite",
179
+ name: "Vite",
180
+ desc: "A Vite template pre-configured with AristoByteUI.",
181
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-vite.git"
182
+ },
183
+ {
184
+ id: "aristobyte-ui-template-astro",
185
+ name: "Astro",
186
+ desc: "An Astro template pre-configured with AristoByteUI.",
187
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-astro.git"
188
+ },
189
+ {
190
+ id: "aristobyte-ui-template-cra",
191
+ name: "CRA",
192
+ desc: "A Create React App template pre-configured with AristoByteUI.",
193
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-cra.git"
194
+ }
195
+ ];
196
+ var PACKAGE_MANAGERS = ["npm", "yarn", "pnpm", "bun"];
197
+ var DEFAULT_NAME = "aristobyte-ui-app";
198
+ async function init() {
199
+ console.log(import_picocolors2.default.cyan("\u250C Create a new project"));
200
+ const projectNameResult = await text({
201
+ message: "New project name (Enter to skip with default name)",
202
+ placeholder: DEFAULT_NAME
203
+ });
204
+ const projectName = (String(projectNameResult) || DEFAULT_NAME).trim();
205
+ const templateIndex = await select({
206
+ message: "Select a template (Enter to select)",
207
+ options: TEMPLATES.map((t, i) => ({
208
+ value: i + "",
209
+ label: `${t.name} (${t.desc})`
210
+ }))
211
+ });
212
+ const template = TEMPLATES[Number(templateIndex)];
213
+ const packageManagerIndex = await select({
214
+ message: "Select a package manager (Enter to select)",
215
+ options: PACKAGE_MANAGERS.map((pm, i) => ({
216
+ value: i.toString(),
217
+ label: pm
218
+ }))
219
+ });
220
+ const packageManager = PACKAGE_MANAGERS[Number(packageManagerIndex)];
221
+ console.log(import_picocolors2.default.cyan("\nTemplate created successfully!\n"));
222
+ const s = spinner2();
223
+ try {
224
+ s.start(
225
+ `Preparing '${template.name}' with ${packageManager} configuration...`
226
+ );
227
+ await execa2(
228
+ "git",
229
+ [
230
+ "clone",
231
+ "--branch",
232
+ packageManager,
233
+ "--single-branch",
234
+ template.repo,
235
+ projectName
236
+ ],
237
+ {
238
+ stdio: "ignore"
239
+ }
240
+ );
241
+ await execa2("rm", ["-rf", ".git"], { stdio: "ignore", cwd: projectName });
242
+ s.stop();
243
+ console.log(import_picocolors2.default.green("\u2705 Project initialized successfully!\n"));
244
+ console.log(import_picocolors2.default.cyan("Next steps:"));
245
+ console.log(import_picocolors2.default.cyan(` cd ${projectName}`));
246
+ console.log(import_picocolors2.default.cyan(` ${packageManager} install`));
247
+ console.log(import_picocolors2.default.cyan(` ${packageManager} run dev
248
+ `));
249
+ } catch (err) {
250
+ s.stop();
251
+ console.error(import_picocolors2.default.red("\u274C Failed to initialize project"), err);
252
+ }
253
+ }
254
+
255
+ // commands/remove.ts
256
+ var import_picocolors3 = __toESM(require_picocolors());
257
+ import { spinner as spinner3 } from "@clack/prompts";
258
+ import { execa as execa3 } from "execa";
259
+ async function remove(component) {
260
+ const s = spinner3();
261
+ try {
262
+ const pkgName = component === "all" ? "@aristobyte-ui/react" : `@aristobyte-ui/${component}`;
263
+ s.start(`Removing ${pkgName}...`);
264
+ await execa3("yarn", ["remove", pkgName], { stdio: "inherit" });
265
+ s.stop();
266
+ console.log(import_picocolors3.default.green(`\u2705 ${pkgName} removed successfully!`));
267
+ } catch (err) {
268
+ s.stop();
269
+ console.error(import_picocolors3.default.red(`\u274C Failed to remove component ${component}`), err);
270
+ }
271
+ }
272
+
273
+ // commands/upgrade.ts
274
+ var import_picocolors4 = __toESM(require_picocolors());
275
+ import { spinner as spinner4 } from "@clack/prompts";
276
+ import { execa as execa4 } from "execa";
277
+ async function upgrade(component) {
278
+ const s = spinner4();
279
+ try {
280
+ const pkgName = component === "all" ? "@aristobyte-ui/react" : `@aristobyte-ui/${component}`;
281
+ s.start(`Upgrading ${pkgName}...`);
282
+ await execa4("yarn", ["upgrade", pkgName], { stdio: "inherit" });
283
+ s.stop();
284
+ console.log(import_picocolors4.default.green(`\u2705 ${pkgName} upgraded successfully!`));
285
+ } catch (err) {
286
+ s.stop();
287
+ console.error(
288
+ import_picocolors4.default.red(`\u274C Failed to upgrade component ${component}`),
289
+ err
290
+ );
291
+ }
292
+ }
293
+
294
+ // commands/list.ts
295
+ var import_picocolors5 = __toESM(require_picocolors());
296
+ import fs from "fs";
297
+ async function list() {
298
+ try {
299
+ const pkgJson = JSON.parse(fs.readFileSync("package.json", "utf-8"));
300
+ const deps = pkgJson.dependencies || {};
301
+ const aristobyteDeps = Object.keys(deps).filter(
302
+ (d) => d.startsWith("@aristobyte-ui/")
303
+ );
304
+ console.log(import_picocolors5.default.blue("Installed AristoByteUI components:"));
305
+ aristobyteDeps.forEach((dep) => console.log(import_picocolors5.default.green(dep)));
306
+ } catch (err) {
307
+ console.error(import_picocolors5.default.red("\u274C Failed to list components"), err);
308
+ }
309
+ }
310
+
311
+ // commands/doctor.ts
312
+ import { execSync } from "child_process";
313
+ import { spinner as spinner5 } from "@clack/prompts";
314
+
315
+ // utils/compareVersions.ts
316
+ function compareVersions(v1, v2) {
317
+ const a = v1.replace(/^v/, "").split(".").map(Number);
318
+ const b = v2.replace(/^v/, "").split(".").map(Number);
319
+ for (let i = 0; i < 3; i++) {
320
+ if (a[i] > b[i]) return 1;
321
+ if (a[i] < b[i]) return -1;
322
+ }
323
+ return 0;
324
+ }
325
+
326
+ // commands/doctor.ts
327
+ var import_picocolors6 = __toESM(require_picocolors());
328
+ var MIN_NODE_VERSION = "20.19.0";
329
+ async function doctor() {
330
+ const s = spinner5();
331
+ try {
332
+ s.start("Running project health checks...");
333
+ let nodeVersion = "unknown";
334
+ try {
335
+ nodeVersion = execSync("node -v").toString().trim();
336
+ } catch (err) {
337
+ console.error(import_picocolors6.default.red("\u274C Failed to detect Node version:"), err);
338
+ }
339
+ let nodeStatus = "\u2705 OK";
340
+ if (nodeVersion !== "unknown" && compareVersions(nodeVersion, MIN_NODE_VERSION) < 0) {
341
+ nodeStatus = import_picocolors6.default.red(`\u274C Node >= ${MIN_NODE_VERSION} required`);
342
+ }
343
+ let yarnVersion = "unknown";
344
+ try {
345
+ yarnVersion = execSync("yarn -v").toString().trim();
346
+ } catch (err) {
347
+ console.error(import_picocolors6.default.red("\u274C Failed to detect Yarn version:"), err);
348
+ }
349
+ s.stop();
350
+ console.log(import_picocolors6.default.green(`Node version: ${nodeVersion} ${nodeStatus}`));
351
+ console.log(import_picocolors6.default.green(`Yarn version: ${yarnVersion}`));
352
+ console.log(import_picocolors6.default.green("All basic health checks completed!"));
353
+ } catch (err) {
354
+ s.stop();
355
+ console.error(import_picocolors6.default.red("\u274C Doctor check failed"), err);
356
+ }
357
+ }
358
+
359
+ // commands/env.ts
360
+ import os from "os";
361
+ import { execSync as execSync2 } from "child_process";
362
+ import { spinner as spinner6 } from "@clack/prompts";
363
+
364
+ // utils/checkVersion.ts
365
+ var import_picocolors7 = __toESM(require_picocolors());
366
+ function checkVersion(name, version, minVersion) {
367
+ if (version === "unknown" || compareVersions(version, minVersion) < 0) {
368
+ return import_picocolors7.default.red(`\u274C ${name} >= ${minVersion} required`);
369
+ }
370
+ return import_picocolors7.default.green(`\u2705 ${version}`);
371
+ }
372
+
373
+ // commands/env.ts
374
+ var import_picocolors8 = __toESM(require_picocolors());
375
+ var MIN_VERSIONS = {
376
+ node: "20.17.0",
377
+ npm: "10.8.2",
378
+ yarn: "1.22.22"
379
+ };
380
+ function getVersion(command2, name) {
381
+ try {
382
+ return execSync2(command2).toString().trim();
383
+ } catch (err) {
384
+ console.error(import_picocolors8.default.red(`\u274C Failed to detect ${name} version:`), err);
385
+ return "unknown";
386
+ }
387
+ }
388
+ async function env() {
389
+ const s = spinner6();
390
+ try {
391
+ s.start("Fetching system environment info...");
392
+ const nodeVersion = getVersion("node -v", "Node");
393
+ const npmVersion = getVersion("npm -v", "npm");
394
+ const yarnVersion = getVersion("yarn -v", "Yarn");
395
+ s.stop();
396
+ console.log(import_picocolors8.default.blue("System Environment Info:"));
397
+ console.log(
398
+ import_picocolors8.default.green(`OS: ${os.type()} ${os.release()} (${os.platform()})`)
399
+ );
400
+ console.log(import_picocolors8.default.green(`CPU: ${os.cpus()[0].model}`));
401
+ console.log(
402
+ import_picocolors8.default.green(`Memory: ${(os.totalmem() / 1024 / 1024).toFixed(0)} MB`)
403
+ );
404
+ console.log(
405
+ `Node: ${checkVersion("Node", nodeVersion, MIN_VERSIONS.node)}`
406
+ );
407
+ console.log(`npm: ${checkVersion("npm", npmVersion, MIN_VERSIONS.npm)}`);
408
+ console.log(
409
+ `Yarn: ${checkVersion("Yarn", yarnVersion, MIN_VERSIONS.yarn)}`
410
+ );
411
+ } catch (err) {
412
+ s.stop();
413
+ console.error(
414
+ import_picocolors8.default.red("\u274C Failed to fetch system environment info:"),
415
+ err
416
+ );
417
+ }
418
+ }
419
+
420
+ // utils/getBanner.ts
421
+ import gradient from "gradient-string";
422
+ var banners = [
423
+ ` \u2591\u2588\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588
424
+ \u2591\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588
425
+ \u2591\u2588\u2588 \u2591\u2588\u2588\u2591\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588
426
+ \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588
427
+ \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588
428
+ \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588 \u2591\u2588\u2588
429
+ \u2591\u2588\u2588 \u2591\u2588\u2591\u2588\u2588 \u2591\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588
430
+ \u2591\u2588\u2588
431
+ \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 `,
432
+ ` \u2597\u2584\u2596\u2597\u2584\u2584\u2596\u2597\u2584\u2584\u2584\u2596\u2597\u2584\u2584\u2597\u2584\u2584\u2584\u2597\u2584\u2596\u2597\u2584\u2584\u2597\u2596 \u2597\u2597\u2584\u2584\u2584\u2597\u2584\u2584\u2584\u2596 \u2597\u2596 \u2597\u2597\u2584\u2584\u2584\u2596
433
+ \u2590\u258C \u2590\u2590\u258C \u2590\u258C \u2588 \u2590\u258C \u2588\u2590\u258C \u2590\u2590\u258C \u2590\u259D\u259A\u259E\u2598 \u2588 \u2590\u258C \u2590\u258C \u2590\u258C \u2588
434
+ \u2590\u259B\u2580\u259C\u2590\u259B\u2580\u259A\u2596 \u2588 \u259D\u2580\u259A\u2596 \u2588\u2590\u258C \u2590\u2590\u259B\u2580\u259A\u2596\u2590\u258C \u2588 \u2590\u259B\u2580\u2580\u2598 \u2590\u258C \u2590\u258C \u2588
435
+ \u2590\u258C \u2590\u2590\u258C \u2590\u2597\u2584\u2588\u2584\u2597\u2584\u2584\u259E\u2598 \u2588\u259D\u259A\u2584\u259E\u2590\u2599\u2584\u259E\u2598\u2590\u258C \u2588 \u2590\u2599\u2584\u2584\u2596 \u259D\u259A\u2584\u259E\u2597\u2584\u2588\u2584\u2596`,
436
+ ` _ _ _ ___ _ _ _ ___
437
+ /_\\ _ _(_)__| |_ ___| _ )_ _| |_ ___ | | | |_ _|
438
+ / _ \\| '_| (_-< _/ _ \\ _ \\ || | _/ -_) | |_| || |
439
+ /_/ \\_\\_| |_/__/\\__\\___/___/\\_, |\\__\\___| \\___/|___|
440
+ |__/ `,
441
+ ` _____ _____
442
+ ( ___ ) ( ___ )
443
+ | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| |
444
+ | | \\ _) | __ ) | | | _ _| | |
445
+ | | _ \\ __| | __| __| _ \\ __ \\ | | __| _ \\ | | | | |
446
+ | | ___ \\ | | \\__ \\ | ( | | | | | | __/ | | | | |
447
+ | | _/ _\\ _| _| ____/ \\__| \\___/ ____/ \\__, | \\__| \\___| \\___/ ___| | |
448
+ | | ____/ | |
449
+ |___|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|___|
450
+ (_____) (_____)`,
451
+ ` \\ _) | __ ) | | | _ _|
452
+ _ \\ __| | __| __| _ \\ __ \\ | | __| _ \\ | | |
453
+ ___ \\ | | \\__ \\ | ( | | | | | | __/ | | |
454
+ _/ _\\ _| _| ____/ \\__| \\___/ ____/ \\__, | \\__| \\___| \\___/ ___|
455
+ ____/ `,
456
+ ` ___ _ __ ____ __ __ ______
457
+ / | _____(______/ /_____ / __ )__ __/ /____ / / / / _/
458
+ / /| | / ___/ / ___/ __/ __ \\/ __ / / / / __/ _ \\ / / / // /
459
+ / ___ |/ / / (__ / /_/ /_/ / /_/ / /_/ / /_/ __/ / /_/ _/ /
460
+ /_/ |_/_/ /_/____/\\__/\\____/_____/\\__, /\\__/\\___/ \\____/___/
461
+ /____/ `,
462
+ ` \u2588\u2588
463
+ \u2592\u2588\u2588\u2592 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588
464
+ \u2593\u2588\u2588\u2593 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588
465
+ \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2592\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588
466
+ \u2588\u2588\u2588\u2588 \u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588 \u2588\u2588\u2588\u2593 \u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2592 \u2588\u2588 \u2588\u2588 \u2588\u2588
467
+ \u2592\u2588\u2593\u2593\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2592\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2588\u2588 \u2588\u2588 \u2588\u2588
468
+ \u2593\u2588\u2592\u2592\u2588\u2593\u2588\u2588\u2588\u2591 \u2588\u2588 \u2588\u2588\u2592 \u2591\u2592\u2588 \u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2592 \u2588\u2588\u2591 \u2588\u2588 \u2588\u2588\u2592 \u2592\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588
469
+ \u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2593\u2591 \u2588\u2588 \u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2592\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588
470
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592 \u2588\u2588 \u2588\u2588 \u2588\u2588\u2588 \u2592\u2588\u2588\u2591\u2588\u2588\u2593\u2588\u2593 \u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588
471
+ \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588 \u2591\u2592\u2593\u2588\u2588 \u2588\u2588 \u2588\u2588\u2591 \u2591\u2588\u2588\u2588 \u2588\u2588 \u2588\u2588\u2588\u2588\u2591 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588 \u2588\u2588
472
+ \u2592\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588 \u2588\u2592\u2591 \u2592\u2588\u2588 \u2588\u2588\u2591 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2592\u2588\u2588 \u2592\u2588\u2588\u2588 \u2588\u2588\u2591 \u2588\u2588\u2588\u2591 \u2592\u2588 \u2588\u2588\u2593 \u2593\u2588\u2588 \u2588\u2588
473
+ \u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2593 \u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588
474
+ \u2588\u2588\u2592 \u2592\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2593\u2588\u2588\u2588\u2588\u2593 \u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2593 \u2588\u2588\u2591 \u2591\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2592 \u2592\u2588\u2588\u2588\u2588\u2592\u2588\u2588\u2588\u2588\u2588\u2588
475
+ \u2592\u2588\u2588
476
+ \u2588\u2588\u2588\u2592
477
+ \u2588\u2588\u2588 `
478
+ ];
479
+ function getBanner() {
480
+ const logoGradient = gradient([
481
+ "#ffee27",
482
+ "#fec800",
483
+ "#f18e35",
484
+ "#e95f32",
485
+ "#e2312d",
486
+ "#e95f32",
487
+ "#f18e35",
488
+ "#fec800",
489
+ "#ffee27",
490
+ "#fec800",
491
+ "#f18e35",
492
+ "#e95f32",
493
+ "#e2312d",
494
+ "#e95f32",
495
+ "#f18e35",
496
+ "#fec800",
497
+ "#ffee27",
498
+ "#fec800",
499
+ "#f18e35",
500
+ "#e95f32",
501
+ "#e2312d"
502
+ ]);
503
+ return logoGradient.multiline(banners[0]);
504
+ }
505
+
506
+ // utils/typography.ts
507
+ var import_picocolors9 = __toESM(require_picocolors());
508
+ function command(text2) {
509
+ return import_picocolors9.default.yellow(text2);
510
+ }
511
+ function bracket(text2) {
512
+ return import_picocolors9.default.redBright(text2);
513
+ }
514
+
515
+ // package.json
516
+ var package_default = {
517
+ name: "@aristobyte-ui/cli",
518
+ description: "The official AristoByteUI CLI \u2014 initialize projects, install, upgrade, remove, and manage UI components seamlessly.",
519
+ version: "1.0.46",
520
+ license: "MIT",
521
+ private: false,
522
+ author: "AristoByte <info@aristobyte.com>",
523
+ homepage: "https://www.npmjs.com/package/@aristobyte-ui/cli",
524
+ repository: {
525
+ type: "git",
526
+ url: "git+https://github.com/aristobyte-team/aristobyte-ui.git",
527
+ directory: "./"
528
+ },
529
+ bugs: {
530
+ url: "https://github.com/aristobyte-team/aristobyte-ui.git/issues"
531
+ },
532
+ engines: {
533
+ node: ">=20.17.0",
534
+ npm: ">=10.8.2",
535
+ yarn: ">=1.22.22"
536
+ },
537
+ keywords: [
538
+ "aristobyte",
539
+ "cli",
540
+ "ui",
541
+ "components",
542
+ "typescript",
543
+ "node",
544
+ "developer-tools",
545
+ "project-bootstrap",
546
+ "package-management"
547
+ ],
548
+ files: [
549
+ "dist"
550
+ ],
551
+ publishConfig: {
552
+ access: "public"
553
+ },
554
+ main: "dist/index.js",
555
+ module: "dist/index.mjs",
556
+ bin: {
557
+ "aristobyte-ui": "dist/index.js"
558
+ },
559
+ exports: {
560
+ ".": {
561
+ import: "./dist/index.mjs",
562
+ require: "./dist/index.js"
563
+ }
564
+ },
565
+ scripts: {
566
+ build: "tsup",
567
+ "build:watch": "tsup ./index.ts --watch",
568
+ dev: "tsup ./index.ts --watch",
569
+ start: "node ./bin/aristobyte-ui.js",
570
+ lint: "eslint . --ext .ts,.tsx --max-warnings 0",
571
+ "lint:fix": "eslint . --ext .ts,.tsx --fix",
572
+ "check-types": "tsc --noEmit",
573
+ bump: "changeset && changeset version",
574
+ status: "changeset status",
575
+ release: "changeset publish"
576
+ },
577
+ dependencies: {
578
+ "@aristobyte-ui/eslint-config": "^1.0.46",
579
+ "@aristobyte-ui/typescript-config": "^1.0.46",
580
+ "@clack/prompts": "^0.11.0",
581
+ axios: "^1.6.0",
582
+ commander: "^11.0.0",
583
+ execa: "^8.0.0",
584
+ "gradient-string": "^3.0.0"
585
+ },
586
+ devDependencies: {
587
+ "@changesets/changelog-github": "^0.5.1",
588
+ "@changesets/cli": "^2.29.6",
589
+ "@types/node": "^24.3.1",
590
+ eslint: "^9.35.0",
591
+ "ts-node": "^10.9.2",
592
+ tsup: "^8.5.0",
593
+ typescript: "^5.9.2"
594
+ }
595
+ };
596
+
597
+ // index.ts
598
+ var program = new Command();
599
+ program.name("aristobyte-ui").description(import_picocolors10.default.bgMagenta(import_picocolors10.default.black(" \u{1F680} Welcome to AristoByteUI CLI "))).version(package_default.version, "-V, --version", import_picocolors10.default.green("Output the CLI version"));
600
+ program.configureHelp({
601
+ formatHelp: (cmd, helper) => `
602
+ ${getBanner()}
603
+ ${import_picocolors10.default.bold("Usage:")} ${helper.commandUsage(cmd)}
604
+
605
+ ${import_picocolors10.default.bold("Description:")}
606
+ ${cmd.description()}
607
+
608
+ ${import_picocolors10.default.bold("Commands:")}
609
+ ${helper.visibleCommands(cmd).map(
610
+ (c) => ` ${`${c.name().padEnd(22)} ${c.usage() || "".padEnd(37)}`.padEnd(92)} ${c.description()}`
611
+ ).join("\n")}
612
+
613
+ ${import_picocolors10.default.bold("Options:")}
614
+ ${helper.visibleOptions(cmd).map((o) => ` ${import_picocolors10.default.yellow(o.flags).padEnd(25)} ${o.description}`).join("\n")}
615
+
616
+ ${import_picocolors10.default.dim(import_picocolors10.default.gray("Tip: Use 'aristobyte-ui [ command ] --help' for detailed info on a command."))}
617
+ `
618
+ });
619
+ program.command(command("init") + import_picocolors10.default.reset(" ")).usage(
620
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")} ${bracket("[")} ${import_picocolors10.default.gray("myProjectName")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
621
+ ).description("Initialize a new AristoByteUI project").action(init);
622
+ program.command(command("add") + import_picocolors10.default.reset(" ")).usage(
623
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")} ${bracket("[")} ${import_picocolors10.default.gray("components...")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
624
+ ).description("Add a UI component").action(add);
625
+ program.command(command("remove") + import_picocolors10.default.reset(" ")).usage(
626
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")} ${bracket("[")} ${import_picocolors10.default.gray("components...")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
627
+ ).description("Remove a UI component").action(remove);
628
+ program.command(command("upgrade") + import_picocolors10.default.reset(" ")).usage(
629
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")} ${bracket("[")} ${import_picocolors10.default.gray("components...")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
630
+ ).description("Upgrade a UI component").action(upgrade);
631
+ program.command(command("list") + import_picocolors10.default.reset(" ")).usage(
632
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
633
+ ).description("List installed components").action(list);
634
+ program.command(command("doctor") + import_picocolors10.default.reset(" ")).usage(
635
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
636
+ ).description("Check system and project health").action(doctor);
637
+ program.command(command("env") + import_picocolors10.default.reset(" ")).usage(
638
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
639
+ ).description("Display environment info").action(env);
640
+ program.command(command("help") + import_picocolors10.default.reset(" ")).usage(
641
+ `${bracket("[")} ${import_picocolors10.default.gray("options")} ${bracket("]")}${import_picocolors10.default.reset(" ")}`
642
+ ).description("Display help for command").action(env);
643
+ program.command("help", { hidden: true });
644
+ program.parseAsync(process.argv);
645
+ //# sourceMappingURL=index.mjs.map