@aristobyte-ui/cli 2.3.6 → 2.4.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 (40) hide show
  1. package/es/package.json +58 -0
  2. package/es/src/main/commands/add.js +106 -0
  3. package/es/src/main/commands/doctor.js +166 -0
  4. package/es/src/main/commands/env.js +175 -0
  5. package/es/src/main/commands/init.js +180 -0
  6. package/es/src/main/commands/list.js +195 -0
  7. package/es/src/main/commands/remove.js +100 -0
  8. package/es/src/main/commands/upgrade.js +122 -0
  9. package/es/src/main/index.js +212 -0
  10. package/es/src/main/utils/checkVersion.js +8 -0
  11. package/es/src/main/utils/colors.js +77 -0
  12. package/es/src/main/utils/compareVersions.js +11 -0
  13. package/es/src/main/utils/getBanner.js +30 -0
  14. package/es/src/main/utils/getCurrentPackageManager.js +55 -0
  15. package/es/src/main/utils/getDescription.js +21 -0
  16. package/es/src/main/utils/getTip.js +21 -0
  17. package/es/src/main/utils/installPackage.js +75 -0
  18. package/es/src/main/utils/parseHelp.js +22 -0
  19. package/es/src/main/utils/typography.js +9 -0
  20. package/lib/package.json +58 -0
  21. package/lib/src/main/commands/add.js +112 -0
  22. package/lib/src/main/commands/doctor.js +172 -0
  23. package/lib/src/main/commands/env.js +181 -0
  24. package/lib/src/main/commands/init.js +186 -0
  25. package/lib/src/main/commands/list.js +202 -0
  26. package/lib/src/main/commands/remove.js +106 -0
  27. package/lib/src/main/commands/upgrade.js +128 -0
  28. package/lib/src/main/index.js +217 -0
  29. package/lib/src/main/utils/checkVersion.js +14 -0
  30. package/lib/src/main/utils/colors.js +96 -0
  31. package/lib/src/main/utils/compareVersions.js +14 -0
  32. package/lib/src/main/utils/getBanner.js +33 -0
  33. package/lib/src/main/utils/getCurrentPackageManager.js +61 -0
  34. package/lib/src/main/utils/getDescription.js +24 -0
  35. package/lib/src/main/utils/getTip.js +24 -0
  36. package/lib/src/main/utils/installPackage.js +78 -0
  37. package/lib/src/main/utils/parseHelp.js +25 -0
  38. package/lib/src/main/utils/typography.js +13 -0
  39. package/package.json +1 -1
  40. package/README.md +0 -11
@@ -0,0 +1,112 @@
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.add = add;
43
+ var prompts_1 = require("@clack/prompts");
44
+ var getCurrentPackageManager_1 = require("../utils/getCurrentPackageManager");
45
+ var picocolors_1 = __importDefault(require("picocolors"));
46
+ var installPackage_1 = require("../utils/installPackage");
47
+ var list_1 = require("./list");
48
+ var DEFAULT_PACKAGE = 'all';
49
+ function add(component, options) {
50
+ return __awaiter(this, void 0, void 0, function () {
51
+ var pkgManager, s, packageName, pkgManager_1, pkgName, err_1;
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ if (!options.list) return [3, 2];
56
+ return [4, (0, list_1.list)({ all: true }, true)];
57
+ case 1:
58
+ _a.sent();
59
+ _a.label = 2;
60
+ case 2:
61
+ pkgManager = (0, getCurrentPackageManager_1.getCurrentPackageManager)();
62
+ if (options.packageManager) {
63
+ console.log("".concat(picocolors_1.default.cyan('Current package manager:'), "\n").concat(picocolors_1.default.green('◇'), " ").concat(pkgManager));
64
+ process.exit(0);
65
+ }
66
+ s = (0, prompts_1.spinner)();
67
+ packageName = DEFAULT_PACKAGE;
68
+ if (!!component) return [3, 5];
69
+ console.log("".concat(picocolors_1.default.green('◇'), " ").concat(picocolors_1.default.white('You did not specify, which package should be added'), "\n").concat(picocolors_1.default.gray('|'), " ").concat(picocolors_1.default.gray('Please select one of the packages below listed to proceed.'), "\n").concat(picocolors_1.default.gray('|')));
70
+ return [4, (0, list_1.list)({ all: true })];
71
+ case 3:
72
+ _a.sent();
73
+ return [4, (0, prompts_1.text)({
74
+ message: 'Component name to add (Enter to install all components)',
75
+ placeholder: DEFAULT_PACKAGE,
76
+ defaultValue: DEFAULT_PACKAGE,
77
+ })];
78
+ case 4:
79
+ packageName = (_a.sent());
80
+ return [3, 6];
81
+ case 5:
82
+ packageName = component;
83
+ _a.label = 6;
84
+ case 6:
85
+ _a.trys.push([6, 10, , 11]);
86
+ s.start("Installing ".concat(packageName, "..."));
87
+ pkgManager_1 = (0, getCurrentPackageManager_1.getCurrentPackageManager)();
88
+ if (!(packageName === 'all')) return [3, 8];
89
+ return [4, (0, installPackage_1.installPackage)(pkgManager_1, '@aristobyte-ui/react')];
90
+ case 7:
91
+ _a.sent();
92
+ s.stop();
93
+ console.log(picocolors_1.default.green('✔ All components installed!'));
94
+ return [2];
95
+ case 8:
96
+ pkgName = "@aristobyte-ui/".concat(packageName);
97
+ return [4, (0, installPackage_1.installPackage)(pkgManager_1, pkgName)];
98
+ case 9:
99
+ _a.sent();
100
+ s.stop();
101
+ console.log(picocolors_1.default.green("\u2714 Component ".concat(packageName, " installed!")));
102
+ return [3, 11];
103
+ case 10:
104
+ err_1 = _a.sent();
105
+ s.stop();
106
+ console.error(picocolors_1.default.red("\u00D7 Failed to install package ".concat(packageName)), err_1);
107
+ return [3, 11];
108
+ case 11: return [2];
109
+ }
110
+ });
111
+ });
112
+ }
@@ -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
+ }