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