@fab-orbita/cli 1.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 (46) hide show
  1. package/bin/fab.js +8 -0
  2. package/dist/commands/info.d.ts +6 -0
  3. package/dist/commands/info.d.ts.map +1 -0
  4. package/dist/commands/info.js +35 -0
  5. package/dist/commands/info.js.map +1 -0
  6. package/dist/commands/init.d.ts +8 -0
  7. package/dist/commands/init.d.ts.map +1 -0
  8. package/dist/commands/init.js +71 -0
  9. package/dist/commands/init.js.map +1 -0
  10. package/dist/commands/install.d.ts +8 -0
  11. package/dist/commands/install.d.ts.map +1 -0
  12. package/dist/commands/install.js +33 -0
  13. package/dist/commands/install.js.map +1 -0
  14. package/dist/commands/login.d.ts +2 -0
  15. package/dist/commands/login.d.ts.map +1 -0
  16. package/dist/commands/login.js +51 -0
  17. package/dist/commands/login.js.map +1 -0
  18. package/dist/commands/logout.d.ts +2 -0
  19. package/dist/commands/logout.d.ts.map +1 -0
  20. package/dist/commands/logout.js +13 -0
  21. package/dist/commands/logout.js.map +1 -0
  22. package/dist/commands/publish.d.ts +8 -0
  23. package/dist/commands/publish.d.ts.map +1 -0
  24. package/dist/commands/publish.js +50 -0
  25. package/dist/commands/publish.js.map +1 -0
  26. package/dist/commands/search.d.ts +7 -0
  27. package/dist/commands/search.d.ts.map +1 -0
  28. package/dist/commands/search.js +33 -0
  29. package/dist/commands/search.js.map +1 -0
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +64 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/utils/auth.d.ts +8 -0
  35. package/dist/utils/auth.d.ts.map +1 -0
  36. package/dist/utils/auth.js +28 -0
  37. package/dist/utils/auth.js.map +1 -0
  38. package/dist/utils/config.d.ts +14 -0
  39. package/dist/utils/config.d.ts.map +1 -0
  40. package/dist/utils/config.js +30 -0
  41. package/dist/utils/config.js.map +1 -0
  42. package/dist/utils/logger.d.ts +9 -0
  43. package/dist/utils/logger.d.ts.map +1 -0
  44. package/dist/utils/logger.js +15 -0
  45. package/dist/utils/logger.js.map +1 -0
  46. package/package.json +52 -0
package/bin/fab.js ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { main } = require('../dist/index.js');
4
+
5
+ main().catch((error) => {
6
+ console.error('❌ Ошибка:', error.message);
7
+ process.exit(1);
8
+ });
@@ -0,0 +1,6 @@
1
+ interface InfoOptions {
2
+ json?: boolean;
3
+ }
4
+ export default function info(packageName: string, options: InfoOptions): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAA8B,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBA6B3E"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = info;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ async function info(packageName, options) {
9
+ try {
10
+ console.log(chalk_1.default.cyan(`\n📦 Информация о пакете: ${packageName}\n`));
11
+ const pkgInfo = {
12
+ name: packageName,
13
+ version: '1.2.0',
14
+ description: 'Пример описания пакета',
15
+ license: 'MIT',
16
+ downloads: 1234,
17
+ created: '2026-01-15',
18
+ versions: ['1.2.0', '1.1.0', '1.0.0']
19
+ };
20
+ if (options.json) {
21
+ console.log(JSON.stringify(pkgInfo, null, 2));
22
+ return;
23
+ }
24
+ console.log(chalk_1.default.white(` Версия: ${chalk_1.default.bold(pkgInfo.version)}`));
25
+ console.log(chalk_1.default.white(` Описание: ${pkgInfo.description}`));
26
+ console.log(chalk_1.default.white(` Лицензия: ${pkgInfo.license}`));
27
+ console.log(chalk_1.default.white(` Скачиваний: ${pkgInfo.downloads}`));
28
+ console.log(chalk_1.default.white(` Создан: ${pkgInfo.created}`));
29
+ console.log(chalk_1.default.white(`\n Версии: ${pkgInfo.versions.join(', ')}`));
30
+ }
31
+ catch (error) {
32
+ console.log(chalk_1.default.red('❌ Ошибка:', error.message));
33
+ }
34
+ }
35
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":";;;;;AAOA,uBA6BC;AApCD,kDAA0B;AAOX,KAAK,UAAU,IAAI,CAAC,WAAmB,EAAE,OAAoB;IAC1E,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,WAAW,IAAI,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;SACtC,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface InitOptions {
2
+ name?: string;
3
+ version?: string;
4
+ yes?: boolean;
5
+ }
6
+ export default function init(options: InitOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAA8B,IAAI,CAAC,OAAO,EAAE,WAAW,iBAgEtD"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = init;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ async function init(options) {
12
+ try {
13
+ console.log(chalk_1.default.cyan('\n📝 Создание fab.json\n'));
14
+ const fabJsonPath = path_1.default.join(process.cwd(), 'fab.json');
15
+ if (fs_1.default.existsSync(fabJsonPath)) {
16
+ console.log(chalk_1.default.yellow('⚠️ fab.json уже существует'));
17
+ return;
18
+ }
19
+ let answers;
20
+ if (options.yes) {
21
+ answers = {
22
+ name: options.name || path_1.default.basename(process.cwd()),
23
+ version: options.version || '1.0.0',
24
+ description: '',
25
+ license: 'MIT'
26
+ };
27
+ }
28
+ else {
29
+ answers = await inquirer_1.default.prompt([
30
+ {
31
+ type: 'input',
32
+ name: 'name',
33
+ message: 'Имя пакета:',
34
+ default: path_1.default.basename(process.cwd())
35
+ },
36
+ {
37
+ type: 'input',
38
+ name: 'version',
39
+ message: 'Версия:',
40
+ default: '1.0.0'
41
+ },
42
+ {
43
+ type: 'input',
44
+ name: 'description',
45
+ message: 'Описание:'
46
+ },
47
+ {
48
+ type: 'input',
49
+ name: 'license',
50
+ message: 'Лицензия:',
51
+ default: 'MIT'
52
+ }
53
+ ]);
54
+ }
55
+ const fabJson = {
56
+ name: answers.name,
57
+ version: answers.version,
58
+ description: answers.description,
59
+ main: 'index.js',
60
+ license: answers.license,
61
+ dependencies: {},
62
+ devDependencies: {}
63
+ };
64
+ fs_1.default.writeFileSync(fabJsonPath, JSON.stringify(fabJson, null, 2));
65
+ console.log(chalk_1.default.green(`✅ Создан ${fabJsonPath}`));
66
+ }
67
+ catch (error) {
68
+ console.log(chalk_1.default.red('❌ Ошибка создания:', error.message));
69
+ }
70
+ }
71
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAWA,uBAgEC;AA3ED,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,wDAAgC;AAQjB,KAAK,UAAU,IAAI,CAAC,OAAoB;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAEzD,IAAI,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC;QAEZ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG;gBACR,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;gBACnC,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC9B;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBACtC;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,WAAW;iBACrB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;SACpB,CAAC;QAEF,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC;IAEtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface InstallOptions {
2
+ save?: boolean;
3
+ saveDev?: boolean;
4
+ global?: boolean;
5
+ }
6
+ export default function install(packageName: string, options: InstallOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAA8B,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,iBAyBjF"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = install;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ora_1 = __importDefault(require("ora"));
9
+ const auth_1 = require("../utils/auth");
10
+ const logger_1 = __importDefault(require("../utils/logger"));
11
+ const API_URL = (0, auth_1.getConfig)('registry') || 'https://fab.devorbit.ru/api/v1';
12
+ async function install(packageName, options) {
13
+ try {
14
+ console.log(chalk_1.default.cyan(`\n📥 Установка ${packageName}\n`));
15
+ const token = (0, auth_1.getToken)();
16
+ const spinner = (0, ora_1.default)('Поиск пакета...').start();
17
+ setTimeout(() => {
18
+ spinner.succeed(chalk_1.default.green(`✅ Пакет ${packageName} найден`));
19
+ console.log(chalk_1.default.white(`\n📦 ${packageName}`));
20
+ console.log(chalk_1.default.gray(` Версия: 1.0.0`));
21
+ console.log(chalk_1.default.gray(` Скачиваний: 1234`));
22
+ if (options.save) {
23
+ console.log(chalk_1.default.yellow('\n📝 Сохранено в fab.json'));
24
+ }
25
+ console.log(chalk_1.default.green('\n✅ Установка завершена'));
26
+ }, 1500);
27
+ }
28
+ catch (error) {
29
+ logger_1.default.error('Install error');
30
+ console.log(chalk_1.default.red('❌ Ошибка установки:', error.message));
31
+ }
32
+ }
33
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;;;;AAcA,0BAyBC;AAvCD,kDAA0B;AAC1B,8CAAsB;AAEtB,wCAAoD;AACpD,6DAAqC;AAErC,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,gCAAgC,CAAC;AAQ3D,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,OAAuB;IAChF,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAG,IAAA,eAAQ,GAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE/C,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,WAAW,SAAS,CAAC,CAAC,CAAC;YAE9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtD,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,gBAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default function login(): Promise<void>;
2
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AASA,wBAA8B,KAAK,kBAwClC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = login;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const inquirer_1 = __importDefault(require("inquirer"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const axios_1 = __importDefault(require("axios"));
11
+ const auth_1 = require("../utils/auth");
12
+ const logger_1 = __importDefault(require("../utils/logger"));
13
+ const API_URL = (0, auth_1.getConfig)('registry') || 'https://fab.devorbit.ru/api/v1';
14
+ async function login() {
15
+ try {
16
+ console.log(chalk_1.default.cyan('\n🔐 Вход в Fab Registry\n'));
17
+ const answers = await inquirer_1.default.prompt([
18
+ {
19
+ type: 'input',
20
+ name: 'email',
21
+ message: 'Email:',
22
+ validate: (input) => input.includes('@') || 'Введите корректный email'
23
+ },
24
+ {
25
+ type: 'password',
26
+ name: 'password',
27
+ message: 'Пароль:',
28
+ mask: '*'
29
+ }
30
+ ]);
31
+ const spinner = (0, ora_1.default)('Выполняется вход...').start();
32
+ const response = await axios_1.default.post(`${API_URL}/auth/login`, {
33
+ email: answers.email,
34
+ password: answers.password
35
+ });
36
+ if (response.data.success) {
37
+ const { accessToken, refreshToken, user } = response.data.data;
38
+ (0, auth_1.saveToken)(accessToken, refreshToken);
39
+ spinner.succeed(chalk_1.default.green(`✅ Вы вошли как ${user.email}`));
40
+ }
41
+ else {
42
+ spinner.fail(chalk_1.default.red('Ошибка входа'));
43
+ console.log(chalk_1.default.red(response.data.message || 'Неверный email или пароль'));
44
+ }
45
+ }
46
+ catch (error) {
47
+ logger_1.default.error('Login error');
48
+ console.log(chalk_1.default.red('❌ Ошибка подключения к серверу'));
49
+ }
50
+ }
51
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;AASA,wBAwCC;AAjDD,kDAA0B;AAC1B,wDAAgC;AAChC,8CAAsB;AACtB,kDAA0B;AAC1B,wCAAqD;AACrD,6DAAqC;AAErC,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,gCAAgC,CAAC;AAE3D,KAAK,UAAU,KAAK;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,0BAA0B;aAC/E;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,GAAG;aACV;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,OAAO,aAAa,EAAE;YACzD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAE/D,IAAA,gBAAS,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAErC,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,2BAA2B,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,gBAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default function logout(): Promise<void>;
2
+ //# sourceMappingURL=logout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAGA,wBAA8B,MAAM,kBAGnC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = logout;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const auth_1 = require("../utils/auth");
9
+ async function logout() {
10
+ (0, auth_1.clearToken)();
11
+ console.log(chalk_1.default.green('✅ Вы вышли из системы'));
12
+ }
13
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;AAGA,yBAGC;AAND,kDAA0B;AAC1B,wCAA2C;AAE5B,KAAK,UAAU,MAAM;IAClC,IAAA,iBAAU,GAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface PublishOptions {
2
+ version?: string;
3
+ tag?: string;
4
+ access?: string;
5
+ }
6
+ export default function publish(options: PublishOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAUA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAA8B,OAAO,CAAC,OAAO,EAAE,cAAc,iBAyC5D"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = publish;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const ora_1 = __importDefault(require("ora"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const auth_1 = require("../utils/auth");
12
+ const logger_1 = __importDefault(require("../utils/logger"));
13
+ const API_URL = (0, auth_1.getConfig)('registry') || 'https://fab.devorbit.ru/api/v1';
14
+ async function publish(options) {
15
+ try {
16
+ console.log(chalk_1.default.cyan('\n📦 Публикация пакета\n'));
17
+ const token = (0, auth_1.getToken)();
18
+ if (!token) {
19
+ console.log(chalk_1.default.red('❌ Вы не авторизованы. Выполните fab login'));
20
+ return;
21
+ }
22
+ const fabJsonPath = path_1.default.join(process.cwd(), 'fab.json');
23
+ if (!fs_1.default.existsSync(fabJsonPath)) {
24
+ console.log(chalk_1.default.red('❌ Файл fab.json не найден. Выполните fab init'));
25
+ return;
26
+ }
27
+ const fabJson = JSON.parse(fs_1.default.readFileSync(fabJsonPath, 'utf-8'));
28
+ const packageName = fabJson.name;
29
+ const version = options.version || fabJson.version;
30
+ if (!packageName) {
31
+ console.log(chalk_1.default.red('❌ В fab.json не указано имя пакета'));
32
+ return;
33
+ }
34
+ const spinner = (0, ora_1.default)('Подготовка пакета...').start();
35
+ setTimeout(() => {
36
+ spinner.succeed(chalk_1.default.green(`✅ Пакет ${packageName}@${version} готов к публикации`));
37
+ console.log(chalk_1.default.yellow('\n⚠️ Реальная публикация требует подключения к API бекенда'));
38
+ console.log(chalk_1.default.gray(`\n📋 Данные для публикации:`));
39
+ console.log(chalk_1.default.gray(` Имя: ${packageName}`));
40
+ console.log(chalk_1.default.gray(` Версия: ${version}`));
41
+ console.log(chalk_1.default.gray(` Тег: ${options.tag || 'latest'}`));
42
+ console.log(chalk_1.default.gray(` Доступ: ${options.access || 'public'}`));
43
+ }, 1500);
44
+ }
45
+ catch (error) {
46
+ logger_1.default.error('Publish error');
47
+ console.log(chalk_1.default.red('❌ Ошибка публикации:', error.message));
48
+ }
49
+ }
50
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":";;;;;AAgBA,0BAyCC;AAzDD,kDAA0B;AAC1B,8CAAsB;AACtB,4CAAoB;AACpB,gDAAwB;AACxB,wCAAoD;AAEpD,6DAAqC;AAErC,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,gCAAgC,CAAC;AAQ3D,KAAK,UAAU,OAAO,CAAC,OAAuB;IAC3D,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAA,eAAQ,GAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;QAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,WAAW,IAAI,OAAO,qBAAqB,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,gBAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface SearchOptions {
2
+ org?: string;
3
+ json?: boolean;
4
+ }
5
+ export default function search(query: string, options: SearchOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAA8B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,iBAyBzE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = search;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const auth_1 = require("../utils/auth");
9
+ const API_URL = (0, auth_1.getConfig)('registry') || 'https://fab.devorbit.ru/api/v1';
10
+ async function search(query, options) {
11
+ try {
12
+ console.log(chalk_1.default.cyan(`\n🔍 Поиск: ${query}\n`));
13
+ const mockPackages = [
14
+ { name: 'mycompany/deploy-tool', description: 'Утилита для деплоя', downloads: 1234 },
15
+ { name: 'acme-corp/utils', description: 'Набор утилит', downloads: 567 },
16
+ { name: 'opensource/logger', description: 'Логгер для Node.js', downloads: 890 }
17
+ ];
18
+ if (options.json) {
19
+ console.log(JSON.stringify(mockPackages, null, 2));
20
+ return;
21
+ }
22
+ mockPackages.forEach((pkg, index) => {
23
+ console.log(chalk_1.default.white(`${index + 1}. ${chalk_1.default.bold(pkg.name)}`));
24
+ console.log(chalk_1.default.gray(` ${pkg.description}`));
25
+ console.log(chalk_1.default.gray(` 📥 ${pkg.downloads} скачиваний`));
26
+ console.log('');
27
+ });
28
+ }
29
+ catch (error) {
30
+ console.log(chalk_1.default.red('❌ Ошибка поиска:', error.message));
31
+ }
32
+ }
33
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":";;;;;AAWA,yBAyBC;AApCD,kDAA0B;AAE1B,wCAA0C;AAE1C,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,IAAI,gCAAgC,CAAC;AAO3D,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,OAAsB;IACxE,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC;QAElD,MAAM,YAAY,GAAG;YACnB,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE;YACrF,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE;YACxE,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,EAAE;SACjF,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare function main(): Promise<void>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAgEA,wBAAsB,IAAI,kBAEzB"}
package/dist/index.js ADDED
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.main = main;
8
+ const commander_1 = require("commander");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const login_1 = __importDefault(require("./commands/login"));
11
+ const logout_1 = __importDefault(require("./commands/logout"));
12
+ const publish_1 = __importDefault(require("./commands/publish"));
13
+ const install_1 = __importDefault(require("./commands/install"));
14
+ const search_1 = __importDefault(require("./commands/search"));
15
+ const info_1 = __importDefault(require("./commands/info"));
16
+ const init_1 = __importDefault(require("./commands/init"));
17
+ commander_1.program
18
+ .name('fab')
19
+ .description(chalk_1.default.cyan('CLI для работы с реестром пакетов Fab Registry'))
20
+ .version('1.0.0');
21
+ commander_1.program
22
+ .command('login')
23
+ .description('Вход в реестр')
24
+ .action(login_1.default);
25
+ commander_1.program
26
+ .command('logout')
27
+ .description('Выход из реестра')
28
+ .action(logout_1.default);
29
+ commander_1.program
30
+ .command('publish')
31
+ .description('Публикация пакета')
32
+ .option('--version <version>', 'Версия пакета')
33
+ .option('--tag <tag>', 'Метка (latest, beta, alpha)', 'latest')
34
+ .option('--access <level>', 'Доступ (public, restricted)', 'public')
35
+ .action(publish_1.default);
36
+ commander_1.program
37
+ .command('install <package>')
38
+ .description('Установка пакета')
39
+ .option('--save', 'Сохранить в зависимости')
40
+ .option('--save-dev', 'Сохранить в devDependencies')
41
+ .option('--global', 'Установить глобально')
42
+ .action(install_1.default);
43
+ commander_1.program
44
+ .command('search <query>')
45
+ .description('Поиск пакетов')
46
+ .option('--org <slug>', 'Поиск в организации')
47
+ .option('--json', 'Вывод в формате JSON')
48
+ .action(search_1.default);
49
+ commander_1.program
50
+ .command('info <package>')
51
+ .description('Информация о пакете')
52
+ .option('--json', 'Вывод в формате JSON')
53
+ .action(info_1.default);
54
+ commander_1.program
55
+ .command('init')
56
+ .description('Создание fab.json')
57
+ .option('--name <name>', 'Имя пакета')
58
+ .option('--version <version>', 'Версия', '1.0.0')
59
+ .option('--yes', 'Использовать значения по умолчанию')
60
+ .action(init_1.default);
61
+ async function main() {
62
+ await commander_1.program.parseAsync();
63
+ }
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAgEA,oBAEC;AAhED,yCAAoC;AACpC,kDAA0B;AAC1B,6DAAqC;AACrC,+DAAuC;AACvC,iEAAyC;AACzC,iEAAyC;AACzC,+DAAuC;AACvC,2DAAmC;AACnC,2DAAmC;AAEnC,mBAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,eAAK,CAAC,CAAC;AAEjB,mBAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,gBAAM,CAAC,CAAC;AAElB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,QAAQ,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,QAAQ,CAAC;KACnE,MAAM,CAAC,iBAAO,CAAC,CAAC;AAEnB,mBAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;KAC3C,MAAM,CAAC,YAAY,EAAE,6BAA6B,CAAC;KACnD,MAAM,CAAC,UAAU,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,iBAAO,CAAC,CAAC;AAEnB,mBAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,gBAAM,CAAC,CAAC;AAElB,mBAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,cAAI,CAAC,CAAC;AAEhB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,QAAQ,EAAE,OAAO,CAAC;KAChD,MAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC;KACrD,MAAM,CAAC,cAAI,CAAC,CAAC;AAET,KAAK,UAAU,IAAI;IACxB,MAAM,mBAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { getConfig } from './config';
2
+ export declare function saveToken(accessToken: string, refreshToken: string): void;
3
+ export declare function getToken(): string | undefined;
4
+ export declare function getRefreshToken(): string | undefined;
5
+ export declare function clearToken(): void;
6
+ export declare function isAuthenticated(): boolean;
7
+ export { getConfig };
8
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2B,MAAM,UAAU,CAAC;AAE9D,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAGzE;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfig = void 0;
4
+ exports.saveToken = saveToken;
5
+ exports.getToken = getToken;
6
+ exports.getRefreshToken = getRefreshToken;
7
+ exports.clearToken = clearToken;
8
+ exports.isAuthenticated = isAuthenticated;
9
+ const config_1 = require("./config");
10
+ Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_1.getConfig; } });
11
+ function saveToken(accessToken, refreshToken) {
12
+ (0, config_1.setConfig)('token', accessToken);
13
+ (0, config_1.setConfig)('refreshToken', refreshToken);
14
+ }
15
+ function getToken() {
16
+ return (0, config_1.getConfig)('token');
17
+ }
18
+ function getRefreshToken() {
19
+ return (0, config_1.getConfig)('refreshToken');
20
+ }
21
+ function clearToken() {
22
+ (0, config_1.deleteConfig)('token');
23
+ (0, config_1.deleteConfig)('refreshToken');
24
+ }
25
+ function isAuthenticated() {
26
+ return !!getToken();
27
+ }
28
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":";;;AAEA,8BAGC;AAED,4BAEC;AAED,0CAEC;AAED,gCAGC;AAED,0CAEC;AAtBD,qCAA8D;AAyBrD,0FAzBA,kBAAS,OAyBA;AAvBlB,SAAgB,SAAS,CAAC,WAAmB,EAAE,YAAoB;IACjE,IAAA,kBAAS,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChC,IAAA,kBAAS,EAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,IAAA,kBAAS,EAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,IAAA,kBAAS,EAAC,cAAc,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,UAAU;IACxB,IAAA,qBAAY,EAAC,OAAO,CAAC,CAAC;IACtB,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import Conf from 'conf';
2
+ interface Config {
3
+ token?: string;
4
+ refreshToken?: string;
5
+ registry?: string;
6
+ defaultOrg?: string;
7
+ }
8
+ declare const config: Conf<Config>;
9
+ export declare function getConfig(key: keyof Config): string | undefined;
10
+ export declare function setConfig(key: keyof Config, value: string): void;
11
+ export declare function deleteConfig(key: keyof Config): void;
12
+ export declare function getAllConfig(): Config;
13
+ export default config;
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,MAAM,cAKV,CAAC;AAEH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getConfig = getConfig;
7
+ exports.setConfig = setConfig;
8
+ exports.deleteConfig = deleteConfig;
9
+ exports.getAllConfig = getAllConfig;
10
+ const conf_1 = __importDefault(require("conf"));
11
+ const config = new conf_1.default({
12
+ projectName: 'fab',
13
+ defaults: {
14
+ registry: 'https://fab.devorbit.ru'
15
+ }
16
+ });
17
+ function getConfig(key) {
18
+ return config.get(key);
19
+ }
20
+ function setConfig(key, value) {
21
+ config.set(key, value);
22
+ }
23
+ function deleteConfig(key) {
24
+ config.delete(key);
25
+ }
26
+ function getAllConfig() {
27
+ return config.store;
28
+ }
29
+ exports.default = config;
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;AAgBA,8BAEC;AAED,8BAEC;AAED,oCAEC;AAED,oCAEC;AA9BD,gDAAwB;AASxB,MAAM,MAAM,GAAG,IAAI,cAAI,CAAS;IAC9B,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,yBAAyB;KACpC;CACF,CAAC,CAAC;AAEH,SAAgB,SAAS,CAAC,GAAiB;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,SAAS,CAAC,GAAiB,EAAE,KAAa;IACxD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAiB;IAC5C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ declare const logger: {
2
+ info: (msg: string) => void;
3
+ success: (msg: string) => void;
4
+ error: (msg: string) => void;
5
+ warn: (msg: string) => void;
6
+ debug: (msg: string) => void;
7
+ };
8
+ export default logger;
9
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,MAAM;gBACE,MAAM;mBACH,MAAM;iBACR,MAAM;gBACP,MAAM;iBACL,MAAM;CACpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chalk_1 = __importDefault(require("chalk"));
7
+ const logger = {
8
+ info: (msg) => console.log(chalk_1.default.blue(msg)),
9
+ success: (msg) => console.log(chalk_1.default.green(msg)),
10
+ error: (msg) => console.log(chalk_1.default.red(msg)),
11
+ warn: (msg) => console.log(chalk_1.default.yellow(msg)),
12
+ debug: (msg) => console.log(chalk_1.default.gray(msg))
13
+ };
14
+ exports.default = logger;
15
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrD,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACrD,CAAC;AAEF,kBAAe,MAAM,CAAC"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@fab-orbita/cli",
3
+ "version": "1.0.0",
4
+ "description": "CLI for Fab Registry — российский реестр пакетов",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "fab": "./bin/fab.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "ts-node src/index.ts",
13
+ "start": "node dist/index.js",
14
+ "prepublishOnly": "npm run build"
15
+ },
16
+ "keywords": [
17
+ "fab",
18
+ "registry",
19
+ "cli",
20
+ "package-manager"
21
+ ],
22
+ "author": "DevOrbit",
23
+ "license": "MIT",
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "dependencies": {
28
+ "axios": "^1.6.0",
29
+ "chalk": "^5.3.0",
30
+ "commander": "^11.1.0",
31
+ "conf": "^11.0.2",
32
+ "inquirer": "^9.2.0",
33
+ "open": "^9.1.0",
34
+ "ora": "^7.0.1",
35
+ "tar": "^6.2.0"
36
+ },
37
+ "devDependencies": {
38
+ "@types/inquirer": "^9.0.0",
39
+ "@types/node": "^20.0.0",
40
+ "@types/tar": "^6.1.0",
41
+ "ts-node": "^10.9.0",
42
+ "typescript": "^5.0.0"
43
+ },
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "files": [
48
+ "dist",
49
+ "bin",
50
+ "README.md"
51
+ ]
52
+ }