@aristobyte-ui/cli 1.0.113 → 2.0.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.
Files changed (42) hide show
  1. package/bin/aristobyte-ui.js +3 -0
  2. package/dist/es/main/commands/add.js +106 -0
  3. package/dist/es/main/commands/doctor.js +166 -0
  4. package/dist/es/main/commands/env.js +175 -0
  5. package/dist/es/main/commands/init.js +180 -0
  6. package/dist/es/main/commands/list.js +195 -0
  7. package/dist/es/main/commands/remove.js +100 -0
  8. package/dist/es/main/commands/upgrade.js +122 -0
  9. package/dist/es/main/index.js +212 -0
  10. package/dist/es/main/utils/checkVersion.js +8 -0
  11. package/dist/es/main/utils/colors.js +77 -0
  12. package/dist/es/main/utils/compareVersions.js +11 -0
  13. package/dist/es/main/utils/getBanner.js +30 -0
  14. package/dist/es/main/utils/getCurrentPackageManager.js +55 -0
  15. package/dist/es/main/utils/getDescription.js +21 -0
  16. package/dist/es/main/utils/getTip.js +21 -0
  17. package/dist/es/main/utils/installPackage.js +75 -0
  18. package/dist/es/main/utils/parseHelp.js +22 -0
  19. package/dist/es/main/utils/typography.js +9 -0
  20. package/dist/lib/main/commands/add.js +112 -0
  21. package/dist/lib/main/commands/doctor.js +172 -0
  22. package/dist/lib/main/commands/env.js +181 -0
  23. package/dist/lib/main/commands/init.js +186 -0
  24. package/dist/lib/main/commands/list.js +202 -0
  25. package/dist/lib/main/commands/remove.js +106 -0
  26. package/dist/lib/main/commands/upgrade.js +128 -0
  27. package/dist/lib/main/index.js +217 -0
  28. package/dist/lib/main/utils/checkVersion.js +14 -0
  29. package/dist/lib/main/utils/colors.js +96 -0
  30. package/dist/lib/main/utils/compareVersions.js +14 -0
  31. package/dist/lib/main/utils/getBanner.js +33 -0
  32. package/dist/lib/main/utils/getCurrentPackageManager.js +61 -0
  33. package/dist/lib/main/utils/getDescription.js +24 -0
  34. package/dist/lib/main/utils/getTip.js +24 -0
  35. package/dist/lib/main/utils/installPackage.js +78 -0
  36. package/dist/lib/main/utils/parseHelp.js +25 -0
  37. package/dist/lib/main/utils/typography.js +13 -0
  38. package/package.json +12 -38
  39. package/dist/index.js +0 -1227
  40. package/dist/index.js.map +0 -1
  41. package/dist/index.mjs +0 -1226
  42. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.doctor = doctor;
43
+ var fs_1 = __importDefault(require("fs"));
44
+ var path_1 = __importDefault(require("path"));
45
+ var os_1 = __importDefault(require("os"));
46
+ var child_process_1 = require("child_process");
47
+ var prompts_1 = require("@clack/prompts");
48
+ var picocolors_1 = __importDefault(require("picocolors"));
49
+ var checkVersion_1 = require("../utils/checkVersion");
50
+ var getCurrentPackageManager_1 = require("../utils/getCurrentPackageManager");
51
+ var MIN_VERSIONS = {
52
+ node: '20.19.0',
53
+ pnpm: '10.15.1',
54
+ npm: '10.8.2',
55
+ yarn: '1.22.22',
56
+ bun: '1.2.21',
57
+ };
58
+ function getVersion(command, name) {
59
+ try {
60
+ return (0, child_process_1.execSync)(command).toString().trim();
61
+ }
62
+ catch (err) {
63
+ console.error(picocolors_1.default.red("\u00D7 Failed to detect ".concat(name, " version:")), err);
64
+ return 'unknown';
65
+ }
66
+ }
67
+ function hasProjectPackage(name) {
68
+ try {
69
+ var pkgJson = JSON.parse(fs_1.default.readFileSync('package.json', 'utf-8'));
70
+ return ((pkgJson.dependencies && pkgJson.dependencies[name]) || (pkgJson.devDependencies && pkgJson.devDependencies[name]));
71
+ }
72
+ catch (_a) {
73
+ return false;
74
+ }
75
+ }
76
+ function detectUISetup() {
77
+ var configPaths = ['tailwind.config.js', 'tailwind.config.ts', 'postcss.config.js', 'postcss.config.ts'];
78
+ return configPaths.filter(function (p) { return fs_1.default.existsSync(path_1.default.resolve(p)); });
79
+ }
80
+ function checkNetwork() {
81
+ return __awaiter(this, void 0, void 0, function () {
82
+ var res, _a;
83
+ return __generator(this, function (_b) {
84
+ switch (_b.label) {
85
+ case 0:
86
+ _b.trys.push([0, 2, , 3]);
87
+ return [4, fetch('https://registry.npmjs.org/-/org/aristobyte-ui/package', { method: 'HEAD' })];
88
+ case 1:
89
+ res = _b.sent();
90
+ return [2, res.ok];
91
+ case 2:
92
+ _a = _b.sent();
93
+ return [2, false];
94
+ case 3: return [2];
95
+ }
96
+ });
97
+ });
98
+ }
99
+ function doctor(options) {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var s, system, pkgManager, pmVersion, uiInstalled, pluginInstalled, configs, networkOnline, payload, err_1;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ s = (0, prompts_1.spinner)();
106
+ _a.label = 1;
107
+ case 1:
108
+ _a.trys.push([1, 4, , 5]);
109
+ s.start('Running doctor diagnostics…');
110
+ console.log("".concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Doctor Diagnostics'), "\n").concat(picocolors_1.default.gray('|')));
111
+ system = {
112
+ os: "".concat(os_1.default.type(), " ").concat(os_1.default.release(), " (").concat(os_1.default.platform(), ")"),
113
+ cpu: os_1.default.cpus()[0].model,
114
+ memoryMB: Math.round(os_1.default.totalmem() / 1024 / 1024),
115
+ node: getVersion('node -v', 'Node'),
116
+ };
117
+ pkgManager = (0, getCurrentPackageManager_1.getCurrentPackageManager)();
118
+ pmVersion = getVersion("".concat(pkgManager, " -v"), pkgManager);
119
+ uiInstalled = hasProjectPackage('@aristobyte-ui/react');
120
+ pluginInstalled = hasProjectPackage('@aristobyte-ui/plugin');
121
+ configs = detectUISetup();
122
+ networkOnline = void 0;
123
+ if (!(options.network || options.all || Object.keys(options).length === 0)) return [3, 3];
124
+ return [4, checkNetwork()];
125
+ case 2:
126
+ networkOnline = _a.sent();
127
+ _a.label = 3;
128
+ case 3:
129
+ payload = {
130
+ system: system,
131
+ packageManager: { name: pkgManager, version: pmVersion },
132
+ installedPackages: { ui: uiInstalled, plugin: pluginInstalled },
133
+ configs: configs,
134
+ network: networkOnline,
135
+ };
136
+ if (options.json) {
137
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.gray('◇ ------ JSON start ------ ◇'), "\n").concat(JSON.stringify(payload, null, 2), "\n").concat(picocolors_1.default.gray('◇ ------ JSON end ------ ◇'), "\n").concat(picocolors_1.default.gray('|')));
138
+ }
139
+ if (options.system || options.all || Object.keys(options).length === 0) {
140
+ console.log("".concat(options.system ? '' : '\n').concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('System:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('OS:'), " ").concat(picocolors_1.default.green(system.os), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('CPU:'), " ").concat(picocolors_1.default.green(system.cpu), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Memory:'), " ").concat(picocolors_1.default.green("".concat(system.memoryMB, " MB")), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Node:'), " ").concat((0, checkVersion_1.checkVersion)('Node', system.node, MIN_VERSIONS.node)));
141
+ }
142
+ if (options.pm || options.all || Object.keys(options).length === 0) {
143
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Package Manager:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Current:'), " ").concat(picocolors_1.default.green(pkgManager), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Version:'), " ").concat((0, checkVersion_1.checkVersion)(pkgManager, pmVersion, MIN_VERSIONS[pkgManager])));
144
+ }
145
+ if (options.deps || options.all || Object.keys(options).length === 0) {
146
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Project Dependencies:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('@aristobyte-ui/react:'), " ").concat(uiInstalled ? picocolors_1.default.green('✔ Installed') : picocolors_1.default.red('× Missing'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('@aristobyte-ui/plugin:'), " ").concat(pluginInstalled ? picocolors_1.default.green('✔ Installed') : picocolors_1.default.red('× Missing')));
147
+ }
148
+ if (options.configs || options.all || Object.keys(options).length === 0) {
149
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Config Files:')));
150
+ if (!configs.length) {
151
+ console.log("".concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.red('× No config files detected')));
152
+ }
153
+ else {
154
+ configs.forEach(function (cfg) { return console.log("".concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.green('✔'), " ").concat(picocolors_1.default.white(cfg))); });
155
+ }
156
+ }
157
+ if ((options.network || options.all || Object.keys(options).length === 0) && networkOnline !== undefined) {
158
+ console.log("".concat(options.network ? '\n' : '').concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Network:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(networkOnline ? "".concat(picocolors_1.default.green('✔'), " ").concat(picocolors_1.default.white('Registry reachable')) : "".concat(picocolors_1.default.red('×'), " ").concat(picocolors_1.default.white('Registry unreachable'))));
159
+ }
160
+ console.log(picocolors_1.default.gray('|'));
161
+ s.stop(picocolors_1.default.green('✔ Doctor diagnostics finished successfully!'));
162
+ return [3, 5];
163
+ case 4:
164
+ err_1 = _a.sent();
165
+ s.stop(picocolors_1.default.red('× Doctor diagnostics failed'));
166
+ console.error(picocolors_1.default.red('× Diagnostics crashed'), err_1);
167
+ return [3, 5];
168
+ case 5: return [2];
169
+ }
170
+ });
171
+ });
172
+ }
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.env = env;
43
+ var os_1 = __importDefault(require("os"));
44
+ var fs_1 = __importDefault(require("fs"));
45
+ var child_process_1 = require("child_process");
46
+ var prompts_1 = require("@clack/prompts");
47
+ var checkVersion_1 = require("../utils/checkVersion");
48
+ var getCurrentPackageManager_1 = require("../utils/getCurrentPackageManager");
49
+ var picocolors_1 = __importDefault(require("picocolors"));
50
+ var MIN_VERSIONS = {
51
+ node: '20.19.0',
52
+ pnpm: '10.15.1',
53
+ npm: '10.8.2',
54
+ yarn: '1.22.22',
55
+ bun: '1.2.21',
56
+ };
57
+ function getVersion(command, name) {
58
+ try {
59
+ return (0, child_process_1.execSync)(command).toString().trim();
60
+ }
61
+ catch (err) {
62
+ console.error(picocolors_1.default.red("\u00D7 Failed to detect ".concat(name, " version:")), err);
63
+ return 'unknown';
64
+ }
65
+ }
66
+ function getSystemInfo() {
67
+ return {
68
+ os: "".concat(os_1.default.type(), " ").concat(os_1.default.release(), " (").concat(os_1.default.platform(), ")"),
69
+ cpu: os_1.default.cpus()[0].model,
70
+ memoryMB: Math.round(os_1.default.totalmem() / 1024 / 1024),
71
+ node: getVersion('node -v', 'Node'),
72
+ };
73
+ }
74
+ function getPackageManagerInfo() {
75
+ var current = (0, getCurrentPackageManager_1.getCurrentPackageManager)();
76
+ return {
77
+ packageManager: current,
78
+ version: getVersion("".concat(current, " -v"), current),
79
+ };
80
+ }
81
+ function getInstalledPackages() {
82
+ try {
83
+ var pkgJson = JSON.parse(fs_1.default.readFileSync('package.json', 'utf-8'));
84
+ var deps = pkgJson.dependencies || {};
85
+ return Object.keys(deps)
86
+ .filter(function (d) { return d.startsWith('@aristobyte-ui/'); })
87
+ .map(function (dep) { return (dep.includes('react') ? 'all' : dep.split('/')[1]); });
88
+ }
89
+ catch (_a) {
90
+ return [];
91
+ }
92
+ }
93
+ function checkNetwork() {
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ var url, res, _a;
96
+ return __generator(this, function (_b) {
97
+ switch (_b.label) {
98
+ case 0:
99
+ url = 'https://registry.npmjs.org/-/org/aristobyte-ui/package';
100
+ _b.label = 1;
101
+ case 1:
102
+ _b.trys.push([1, 3, , 4]);
103
+ return [4, fetch(url, { method: 'HEAD' })];
104
+ case 2:
105
+ res = _b.sent();
106
+ return [2, res.ok];
107
+ case 3:
108
+ _a = _b.sent();
109
+ return [2, false];
110
+ case 4: return [2];
111
+ }
112
+ });
113
+ });
114
+ }
115
+ function env(options) {
116
+ return __awaiter(this, void 0, void 0, function () {
117
+ var s, system, pm, installed, networkOnline, _a, payload, err_1;
118
+ return __generator(this, function (_b) {
119
+ switch (_b.label) {
120
+ case 0:
121
+ s = (0, prompts_1.spinner)();
122
+ _b.label = 1;
123
+ case 1:
124
+ _b.trys.push([1, 5, , 6]);
125
+ s.start('Collecting environment diagnostics…');
126
+ console.log("".concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Environment Diagnostics'), "\n").concat(picocolors_1.default.gray('|')));
127
+ system = getSystemInfo();
128
+ pm = getPackageManagerInfo();
129
+ installed = options.packages || options.all || Object.keys(options).length === 0 ? getInstalledPackages() : [];
130
+ if (!(options.network || options.all || Object.keys(options).length === 0)) return [3, 3];
131
+ return [4, checkNetwork()];
132
+ case 2:
133
+ _a = _b.sent();
134
+ return [3, 4];
135
+ case 3:
136
+ _a = undefined;
137
+ _b.label = 4;
138
+ case 4:
139
+ networkOnline = _a;
140
+ payload = {
141
+ system: system,
142
+ packageManager: pm,
143
+ installedPackages: installed,
144
+ network: networkOnline,
145
+ };
146
+ if (options.json) {
147
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.gray('◇ ------ JSON file start ------ ◇'), "\n").concat(JSON.stringify(payload, null, 2), "\n").concat(picocolors_1.default.gray('◇ ------ JSON file end ------ ◇'), "\n").concat(picocolors_1.default.gray('|')));
148
+ }
149
+ if (options.system || options.all || Object.keys(options).length === 0) {
150
+ console.log("".concat(options.all || Object.keys(options).length === 0 ? '\n' : '').concat(picocolors_1.default.gray('|'), " \n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('System:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('OS:'), " ").concat(picocolors_1.default.green("".concat(system.os)), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('CPU:'), " ").concat(picocolors_1.default.green("".concat(system.cpu)), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Memory:'), " ").concat(picocolors_1.default.green("".concat(system.memoryMB, " MB")), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Node:'), " ").concat((0, checkVersion_1.checkVersion)('Node', system.node, MIN_VERSIONS.node)));
151
+ }
152
+ if (options.pm || options.all || Object.keys(options).length === 0) {
153
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Package Manager:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Current:'), " ").concat(picocolors_1.default.green(pm.packageManager), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.white('Version:'), " ").concat(picocolors_1.default.green((0, checkVersion_1.checkVersion)(pm.packageManager, pm.version, MIN_VERSIONS[pm.packageManager]))));
154
+ }
155
+ if (options.packages || options.all || Object.keys(options).length === 0) {
156
+ console.log("".concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Installed AristoByteUI Packages:')));
157
+ if (!installed.length) {
158
+ console.log(picocolors_1.default.gray(' (none detected)'));
159
+ }
160
+ else {
161
+ installed.forEach(function (p) { return console.log("".concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.green('-'), " ").concat(picocolors_1.default.white(p))); });
162
+ }
163
+ }
164
+ if (options.network || options.all || Object.keys(options).length === 0) {
165
+ console.log("".concat(options.network ? '\n' : '').concat(picocolors_1.default.gray('|'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.cyan('Network:'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(networkOnline
166
+ ? "".concat(picocolors_1.default.green('✔'), " ").concat(picocolors_1.default.white('Registry reachable"'))
167
+ : "".concat(picocolors_1.default.red('×'), " ").concat(picocolors_1.default.white('Registry unreachable'))));
168
+ }
169
+ console.log(picocolors_1.default.gray('|'));
170
+ s.stop(picocolors_1.default.green('✔ Environment diagnostics finished with success!'));
171
+ return [3, 6];
172
+ case 5:
173
+ err_1 = _b.sent();
174
+ s.stop(picocolors_1.default.red('× Environment diagnostics finished with failure :('));
175
+ console.error(picocolors_1.default.red('× Environment diagnostics failed'), err_1);
176
+ return [3, 6];
177
+ case 6: return [2];
178
+ }
179
+ });
180
+ });
181
+ }
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.init = init;
43
+ var execa_1 = require("execa");
44
+ var prompts_1 = require("@clack/prompts");
45
+ var picocolors_1 = __importDefault(require("picocolors"));
46
+ var TEMPLATES = [
47
+ {
48
+ id: "aristobyte-ui-template-nextjs-15-app-router",
49
+ name: "Next App Router",
50
+ desc: "A Next.js 15 with app-router directory template pre-configured with AristoByteUI.",
51
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-nextjs-15-app-router.git",
52
+ },
53
+ {
54
+ id: "aristobyte-ui-template-nextjs-15-pages",
55
+ name: "Next Pages",
56
+ desc: "A Next.js 15 with pages directory template pre-configured with AristoByteUI.",
57
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-nextjs-15-pages.git",
58
+ },
59
+ {
60
+ id: "aristobyte-ui-template-vite",
61
+ name: "Vite",
62
+ desc: "A Vite template pre-configured with AristoByteUI.",
63
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-vite.git",
64
+ },
65
+ {
66
+ id: "aristobyte-ui-template-vike",
67
+ name: "Vike",
68
+ desc: "A Vike template pre-configured with AristoByteUI.",
69
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-vike.git",
70
+ },
71
+ {
72
+ id: "aristobyte-ui-template-astro",
73
+ name: "Astro",
74
+ desc: "An Astro template pre-configured with AristoByteUI.",
75
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-astro.git",
76
+ },
77
+ {
78
+ id: "aristobyte-ui-template-rsbuild",
79
+ name: "RS Build",
80
+ desc: "An RS Build template pre-configured with AristoByteUI.",
81
+ repo: "https://github.com/aristobyte-team/aristobyte-ui-template-rsbuild.git",
82
+ },
83
+ ];
84
+ var PACKAGE_MANAGERS = ["npm", "yarn", "pnpm", "bun"];
85
+ var DEFAULT_NAME = "aristobyte-ui-app";
86
+ function init(myProjectName, options) {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ var projectName, template, templateIndex, packageManager, packageManagerIndex, s, err_1;
89
+ return __generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0:
92
+ if (options.listTemplates) {
93
+ console.log("".concat(picocolors_1.default.cyan("Available templates:"), "\n").concat(TEMPLATES.map(function (t) {
94
+ return "".concat(picocolors_1.default.green("◇"), " ").concat(t.id.split("aristobyte-ui-template-")[1], " - ").concat(picocolors_1.default.gray(t.desc));
95
+ }).join("\n")));
96
+ process.exit(0);
97
+ }
98
+ if (options.listPackageManagers) {
99
+ console.log("".concat(picocolors_1.default.cyan("Available package managers:"), "\n").concat(PACKAGE_MANAGERS.map(function (pm) { return "".concat(picocolors_1.default.green("◇"), " ").concat(pm); }).join("\n")));
100
+ process.exit(0);
101
+ }
102
+ console.log(picocolors_1.default.cyan("┌ Create a new project"));
103
+ projectName = myProjectName || DEFAULT_NAME;
104
+ if (!!myProjectName) return [3, 2];
105
+ return [4, (0, prompts_1.text)({
106
+ message: "New project name (Enter to skip with default name)",
107
+ placeholder: DEFAULT_NAME,
108
+ defaultValue: DEFAULT_NAME,
109
+ })];
110
+ case 1:
111
+ projectName = (_a.sent());
112
+ return [3, 3];
113
+ case 2:
114
+ console.log("".concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.green("◇"), " ").concat(picocolors_1.default.white("Your project name is:"), "\n").concat(picocolors_1.default.gray("│"), " ").concat(picocolors_1.default.green(projectName)));
115
+ _a.label = 3;
116
+ case 3:
117
+ template = TEMPLATES.find(function (t) {
118
+ var _a, _b;
119
+ return t.id ===
120
+ "aristobyte-ui-template-".concat((_b = (_a = options === null || options === void 0 ? void 0 : options.template) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.replaceAll(" ", ""));
121
+ });
122
+ if (!!template) return [3, 5];
123
+ return [4, (0, prompts_1.select)({
124
+ message: "Select a template (Enter to select)",
125
+ options: TEMPLATES.map(function (t, i) { return ({
126
+ value: i.toString(),
127
+ label: "".concat(t.name, " (").concat(t.desc, ")"),
128
+ }); }),
129
+ })];
130
+ case 4:
131
+ templateIndex = _a.sent();
132
+ template = TEMPLATES[Number(templateIndex)];
133
+ return [3, 6];
134
+ case 5:
135
+ console.log("".concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.green("◇"), " ").concat(picocolors_1.default.white("Template selected:"), "\n").concat(picocolors_1.default.gray("│"), " ").concat(picocolors_1.default.green(template.name)));
136
+ _a.label = 6;
137
+ case 6:
138
+ packageManager = PACKAGE_MANAGERS.find(function (pm) { var _a; return pm.toLowerCase() === ((_a = options.packageManager) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
139
+ if (!!packageManager) return [3, 8];
140
+ return [4, (0, prompts_1.select)({
141
+ message: "Select a package manager (Enter to select)",
142
+ options: PACKAGE_MANAGERS.map(function (pm, i) { return ({
143
+ value: i.toString(),
144
+ label: pm,
145
+ }); }),
146
+ })];
147
+ case 7:
148
+ packageManagerIndex = _a.sent();
149
+ packageManager = PACKAGE_MANAGERS[Number(packageManagerIndex)];
150
+ return [3, 9];
151
+ case 8:
152
+ console.log("".concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.green("◇"), " ").concat(picocolors_1.default.white("Package manager selected:"), "\n").concat(picocolors_1.default.gray("│"), " ").concat(picocolors_1.default.green(packageManager)));
153
+ _a.label = 9;
154
+ case 9:
155
+ console.log("".concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.green("◇"), " ").concat(picocolors_1.default.cyan("Template created successfully!"), "\n").concat(picocolors_1.default.gray("│")));
156
+ s = (0, prompts_1.spinner)();
157
+ _a.label = 10;
158
+ case 10:
159
+ _a.trys.push([10, 13, , 14]);
160
+ s.start("Preparing '".concat(template.name, "' with ").concat(packageManager, " configuration..."));
161
+ return [4, (0, execa_1.execa)("git", [
162
+ "clone",
163
+ "--branch",
164
+ packageManager,
165
+ "--single-branch",
166
+ template.repo,
167
+ projectName,
168
+ ], { stdio: "ignore" })];
169
+ case 11:
170
+ _a.sent();
171
+ return [4, (0, execa_1.execa)("rm", ["-rf", ".git"], { cwd: projectName, stdio: "ignore" })];
172
+ case 12:
173
+ _a.sent();
174
+ s.stop("".concat(picocolors_1.default.green("✔ Project initialized successfully!")));
175
+ console.log("\n".concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.green("◇"), " ").concat(picocolors_1.default.cyan("To get started:"), "\n").concat(picocolors_1.default.gray("│"), "\n").concat(picocolors_1.default.gray("├─"), " ").concat(picocolors_1.default.white("cd " + projectName), "\n").concat(picocolors_1.default.gray("├─"), " ").concat(picocolors_1.default.white("".concat(packageManager, " install")), "\n").concat(picocolors_1.default.gray("├─"), " ").concat(picocolors_1.default.white("".concat(packageManager, " run dev"))));
176
+ return [3, 14];
177
+ case 13:
178
+ err_1 = _a.sent();
179
+ s.stop();
180
+ console.error(picocolors_1.default.red("× Failed to initialize project"), err_1);
181
+ return [3, 14];
182
+ case 14: return [2];
183
+ }
184
+ });
185
+ });
186
+ }