kodu 2.2.0 → 3.0.1

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 (233) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +23 -0
  3. package/package.json +11 -67
  4. package/scripts/postinstall.js +69 -0
  5. package/AGENTS.md +0 -214
  6. package/__tests__/core/fs/fs.service.test.ts +0 -72
  7. package/__tests__/core/registry/registry.service.test.ts +0 -82
  8. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  9. package/__tests__/shared/git/git.service.test.ts +0 -84
  10. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  11. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  12. package/biome.json +0 -50
  13. package/dist/package.json +0 -96
  14. package/dist/src/app.module.d.ts +0 -2
  15. package/dist/src/app.module.js +0 -42
  16. package/dist/src/app.module.js.map +0 -1
  17. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  18. package/dist/src/commands/clean/clean.command.js +0 -240
  19. package/dist/src/commands/clean/clean.command.js.map +0 -1
  20. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  21. package/dist/src/commands/clean/clean.module.js +0 -26
  22. package/dist/src/commands/clean/clean.module.js.map +0 -1
  23. package/dist/src/commands/init/init.command.d.ts +0 -10
  24. package/dist/src/commands/init/init.command.js +0 -96
  25. package/dist/src/commands/init/init.command.js.map +0 -1
  26. package/dist/src/commands/init/init.module.d.ts +0 -2
  27. package/dist/src/commands/init/init.module.js +0 -22
  28. package/dist/src/commands/init/init.module.js.map +0 -1
  29. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  30. package/dist/src/commands/ops/ops-add.command.js +0 -102
  31. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  32. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  33. package/dist/src/commands/ops/ops-init.command.js +0 -130
  34. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  35. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  36. package/dist/src/commands/ops/ops-list.command.js +0 -73
  37. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  38. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  39. package/dist/src/commands/ops/ops-path.command.js +0 -52
  40. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  41. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  42. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  43. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  44. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  45. package/dist/src/commands/ops/ops-status.command.js +0 -62
  46. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  47. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  48. package/dist/src/commands/ops/ops-use.command.js +0 -76
  49. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  50. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  51. package/dist/src/commands/ops/ops.command.js +0 -56
  52. package/dist/src/commands/ops/ops.command.js.map +0 -1
  53. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  54. package/dist/src/commands/ops/ops.helpers.js +0 -11
  55. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  56. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  57. package/dist/src/commands/ops/ops.module.js +0 -36
  58. package/dist/src/commands/ops/ops.module.js.map +0 -1
  59. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  60. package/dist/src/commands/pack/pack.command.js +0 -355
  61. package/dist/src/commands/pack/pack.command.js.map +0 -1
  62. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  63. package/dist/src/commands/pack/pack.module.js +0 -27
  64. package/dist/src/commands/pack/pack.module.js.map +0 -1
  65. package/dist/src/core/config/config.module.d.ts +0 -2
  66. package/dist/src/core/config/config.module.js +0 -23
  67. package/dist/src/core/config/config.module.js.map +0 -1
  68. package/dist/src/core/config/config.schema.d.ts +0 -19
  69. package/dist/src/core/config/config.schema.js +0 -56
  70. package/dist/src/core/config/config.schema.js.map +0 -1
  71. package/dist/src/core/config/config.service.d.ts +0 -7
  72. package/dist/src/core/config/config.service.js +0 -49
  73. package/dist/src/core/config/config.service.js.map +0 -1
  74. package/dist/src/core/config/prompt.service.d.ts +0 -10
  75. package/dist/src/core/config/prompt.service.js +0 -80
  76. package/dist/src/core/config/prompt.service.js.map +0 -1
  77. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  78. package/dist/src/core/file-system/fs.module.js +0 -21
  79. package/dist/src/core/file-system/fs.module.js.map +0 -1
  80. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  81. package/dist/src/core/file-system/fs.service.js +0 -203
  82. package/dist/src/core/file-system/fs.service.js.map +0 -1
  83. package/dist/src/core/registry/registry.module.d.ts +0 -2
  84. package/dist/src/core/registry/registry.module.js +0 -22
  85. package/dist/src/core/registry/registry.module.js.map +0 -1
  86. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  87. package/dist/src/core/registry/registry.schema.js +0 -21
  88. package/dist/src/core/registry/registry.schema.js.map +0 -1
  89. package/dist/src/core/registry/registry.service.d.ts +0 -16
  90. package/dist/src/core/registry/registry.service.js +0 -91
  91. package/dist/src/core/registry/registry.service.js.map +0 -1
  92. package/dist/src/core/ui/ui.module.d.ts +0 -2
  93. package/dist/src/core/ui/ui.module.js +0 -22
  94. package/dist/src/core/ui/ui.module.js.map +0 -1
  95. package/dist/src/core/ui/ui.service.d.ts +0 -22
  96. package/dist/src/core/ui/ui.service.js +0 -43
  97. package/dist/src/core/ui/ui.service.js.map +0 -1
  98. package/dist/src/main.d.ts +0 -2
  99. package/dist/src/main.js +0 -16
  100. package/dist/src/main.js.map +0 -1
  101. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  102. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  103. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  104. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  105. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  106. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  107. package/dist/src/shared/constants.d.ts +0 -4
  108. package/dist/src/shared/constants.js +0 -113
  109. package/dist/src/shared/constants.js.map +0 -1
  110. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  111. package/dist/src/shared/deps/deps.module.js +0 -21
  112. package/dist/src/shared/deps/deps.module.js.map +0 -1
  113. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  114. package/dist/src/shared/deps/deps.service.js +0 -114
  115. package/dist/src/shared/deps/deps.service.js.map +0 -1
  116. package/dist/src/shared/git/git.module.d.ts +0 -2
  117. package/dist/src/shared/git/git.module.js +0 -21
  118. package/dist/src/shared/git/git.module.js.map +0 -1
  119. package/dist/src/shared/git/git.service.d.ts +0 -5
  120. package/dist/src/shared/git/git.service.js +0 -56
  121. package/dist/src/shared/git/git.service.js.map +0 -1
  122. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  123. package/dist/src/shared/runbook/runbook.module.js +0 -22
  124. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  125. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  126. package/dist/src/shared/runbook/runbook.service.js +0 -118
  127. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  128. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  129. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  130. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  131. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  132. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  133. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  134. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  135. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  136. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  137. package/dist/tsconfig.build.tsbuildinfo +0 -1
  138. package/docs/todo.md +0 -7
  139. package/knip.json +0 -10
  140. package/kodu.json +0 -63
  141. package/kodu.schema.json +0 -100
  142. package/lefthook.yml +0 -11
  143. package/nest-cli.json +0 -8
  144. package/registry.schema.json +0 -39
  145. package/scripts/generate-json-schema.ts +0 -27
  146. package/skills/ac/SKILL.md +0 -239
  147. package/skills/al/SKILL.md +0 -98
  148. package/skills/audit/SKILL.md +0 -205
  149. package/skills/audit/audit-baseline-template.yml +0 -188
  150. package/skills/audit/runtime-detect.md +0 -64
  151. package/skills/audit/stacks/_generic.md +0 -41
  152. package/skills/audit/stacks/_registry.md +0 -47
  153. package/skills/audit/stacks/go.md +0 -66
  154. package/skills/audit/stacks/java.md +0 -44
  155. package/skills/audit/stacks/node.md +0 -57
  156. package/skills/audit/stacks/python.md +0 -45
  157. package/skills/audit/stacks/rust.md +0 -44
  158. package/skills/audit-api-contracts/SKILL.md +0 -201
  159. package/skills/audit-architecture/SKILL.md +0 -200
  160. package/skills/audit-bugs/SKILL.md +0 -226
  161. package/skills/audit-concurrency/SKILL.md +0 -197
  162. package/skills/audit-deployment/SKILL.md +0 -218
  163. package/skills/audit-docs/SKILL.md +0 -209
  164. package/skills/audit-errors/SKILL.md +0 -216
  165. package/skills/audit-logging/SKILL.md +0 -197
  166. package/skills/audit-matrix/SKILL.md +0 -245
  167. package/skills/audit-meta/SKILL.md +0 -120
  168. package/skills/audit-naming/SKILL.md +0 -200
  169. package/skills/audit-owasp/SKILL.md +0 -223
  170. package/skills/audit-performance/SKILL.md +0 -199
  171. package/skills/audit-reinvention/SKILL.md +0 -214
  172. package/skills/audit-secrets/SKILL.md +0 -198
  173. package/skills/audit-tests/SKILL.md +0 -210
  174. package/skills/audit-validation/SKILL.md +0 -206
  175. package/skills/audit-verify/SKILL.md +0 -139
  176. package/skills/audit-yagni/SKILL.md +0 -188
  177. package/skills/doc-gen/SKILL.md +0 -490
  178. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  179. package/skills/generate-project-docs/SKILL.md +0 -380
  180. package/skills/implement-project/SKILL.md +0 -409
  181. package/skills/liteend-init/SKILL.md +0 -84
  182. package/skills/litefront-init/SKILL.md +0 -96
  183. package/skills/litefront-prototype/SKILL.md +0 -484
  184. package/skills/ops/SKILL.md +0 -94
  185. package/skills/post-call-task-builder/SKILL.md +0 -419
  186. package/skills/project-setup-standardizer/SKILL.md +0 -285
  187. package/skills/skills-best-practices/SKILL.md +0 -415
  188. package/skills/start/SKILL.md +0 -319
  189. package/skills/tech-blueprint/SKILL.md +0 -890
  190. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  191. package/src/app.module.ts +0 -29
  192. package/src/commands/clean/clean.command.ts +0 -235
  193. package/src/commands/clean/clean.module.ts +0 -13
  194. package/src/commands/init/init.command.ts +0 -92
  195. package/src/commands/init/init.module.ts +0 -9
  196. package/src/commands/ops/ops-add.command.ts +0 -83
  197. package/src/commands/ops/ops-init.command.ts +0 -125
  198. package/src/commands/ops/ops-list.command.ts +0 -57
  199. package/src/commands/ops/ops-path.command.ts +0 -38
  200. package/src/commands/ops/ops-runbook.command.ts +0 -74
  201. package/src/commands/ops/ops-status.command.ts +0 -47
  202. package/src/commands/ops/ops-use.command.ts +0 -76
  203. package/src/commands/ops/ops.command.ts +0 -42
  204. package/src/commands/ops/ops.helpers.ts +0 -20
  205. package/src/commands/ops/ops.module.ts +0 -23
  206. package/src/commands/pack/pack.command.ts +0 -347
  207. package/src/commands/pack/pack.module.ts +0 -14
  208. package/src/core/config/config.module.ts +0 -10
  209. package/src/core/config/config.schema.ts +0 -58
  210. package/src/core/config/config.service.ts +0 -43
  211. package/src/core/config/prompt.service.ts +0 -80
  212. package/src/core/file-system/fs.module.ts +0 -8
  213. package/src/core/file-system/fs.service.ts +0 -248
  214. package/src/core/registry/registry.module.ts +0 -9
  215. package/src/core/registry/registry.schema.ts +0 -46
  216. package/src/core/registry/registry.service.ts +0 -128
  217. package/src/core/ui/ui.module.ts +0 -9
  218. package/src/core/ui/ui.service.ts +0 -39
  219. package/src/main.ts +0 -12
  220. package/src/shared/cleaner/cleaner.service.ts +0 -289
  221. package/src/shared/cleaner/cleaner.types.ts +0 -23
  222. package/src/shared/constants.ts +0 -118
  223. package/src/shared/deps/deps.module.ts +0 -8
  224. package/src/shared/deps/deps.service.ts +0 -175
  225. package/src/shared/git/git.module.ts +0 -8
  226. package/src/shared/git/git.service.ts +0 -47
  227. package/src/shared/runbook/runbook.module.ts +0 -9
  228. package/src/shared/runbook/runbook.service.ts +0 -164
  229. package/src/shared/runbook/runbook.templates.ts +0 -66
  230. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  231. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  232. package/tsconfig.build.json +0 -7
  233. package/tsconfig.json +0 -28
@@ -1,130 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.OpsInitCommand = void 0;
16
- const node_path_1 = __importDefault(require("node:path"));
17
- const nest_commander_1 = require("nest-commander");
18
- const registry_schema_1 = require("../../core/registry/registry.schema");
19
- const registry_service_1 = require("../../core/registry/registry.service");
20
- const ui_service_1 = require("../../core/ui/ui.service");
21
- const runbook_service_1 = require("../../shared/runbook/runbook.service");
22
- let OpsInitCommand = class OpsInitCommand extends nest_commander_1.CommandRunner {
23
- ui;
24
- registry;
25
- runbook;
26
- constructor(ui, registry, runbook) {
27
- super();
28
- this.ui = ui;
29
- this.registry = registry;
30
- this.runbook = runbook;
31
- }
32
- parseName(value) {
33
- return value;
34
- }
35
- parseActive(value) {
36
- return value;
37
- }
38
- parseStand(value, previous = []) {
39
- return [...previous, value];
40
- }
41
- async run(_inputs, options) {
42
- const root = process.cwd();
43
- const name = options.name ?? node_path_1.default.basename(root);
44
- const stands = options.stand && options.stand.length > 0
45
- ? options.stand
46
- : [...registry_schema_1.DEFAULT_STANDS];
47
- const activeStand = options.active ?? stands[0] ?? 'local';
48
- try {
49
- await this.runbook.scaffold({ project: name, stands, activeStand }, root);
50
- this.ui.log.success(`Создан .runbook/ для проекта "${name}".`);
51
- this.ui.log.info(`Активный стенд: ${activeStand}`);
52
- this.ui.log.info(`Заполни шаги деплоя в ${this.runbook.runbookPath(root)}`);
53
- const gitignore = await this.runbook.ensureGitignore(root);
54
- this.reportGitignore(gitignore);
55
- await this.registerProject(name, root, stands);
56
- }
57
- catch (error) {
58
- this.ui.log.error(error.message);
59
- process.exitCode = 1;
60
- }
61
- }
62
- reportGitignore(result) {
63
- switch (result) {
64
- case 'created':
65
- this.ui.log.success('Создан .gitignore с записью /.runbook/');
66
- break;
67
- case 'added':
68
- this.ui.log.success('Добавил /.runbook/ в .gitignore');
69
- break;
70
- case 'present':
71
- this.ui.log.info('/.runbook/ уже в .gitignore');
72
- break;
73
- case 'no-git':
74
- this.ui.log.warn('Это не git-репозиторий — .gitignore не настроен. Не коммить .runbook/ вручную.');
75
- break;
76
- }
77
- }
78
- async registerProject(name, root, stands) {
79
- const existing = await this.registry.get(name);
80
- if (!existing) {
81
- await this.registry.add(name, { path: root, stands });
82
- this.ui.log.success(`Проект "${name}" добавлен в реестр.`);
83
- return;
84
- }
85
- if (existing.path === root) {
86
- this.ui.log.info(`Проект "${name}" уже в реестре.`);
87
- return;
88
- }
89
- this.ui.log.warn(`Имя "${name}" уже занято другим путём (${existing.path}). ` +
90
- 'Запусти заново с другим именем: kodu ops init --name <другое-имя>');
91
- }
92
- };
93
- exports.OpsInitCommand = OpsInitCommand;
94
- __decorate([
95
- (0, nest_commander_1.Option)({
96
- flags: '-n, --name <name>',
97
- description: 'Уникальное имя проекта (по умолчанию — имя папки)',
98
- }),
99
- __metadata("design:type", Function),
100
- __metadata("design:paramtypes", [String]),
101
- __metadata("design:returntype", String)
102
- ], OpsInitCommand.prototype, "parseName", null);
103
- __decorate([
104
- (0, nest_commander_1.Option)({
105
- flags: '-a, --active <stand>',
106
- description: 'Активный стенд по умолчанию (по умолчанию local)',
107
- }),
108
- __metadata("design:type", Function),
109
- __metadata("design:paramtypes", [String]),
110
- __metadata("design:returntype", String)
111
- ], OpsInitCommand.prototype, "parseActive", null);
112
- __decorate([
113
- (0, nest_commander_1.Option)({
114
- flags: '-s, --stand <stand>',
115
- description: 'Стенд проекта (можно повторять)',
116
- }),
117
- __metadata("design:type", Function),
118
- __metadata("design:paramtypes", [String, Array]),
119
- __metadata("design:returntype", Array)
120
- ], OpsInitCommand.prototype, "parseStand", null);
121
- exports.OpsInitCommand = OpsInitCommand = __decorate([
122
- (0, nest_commander_1.SubCommand)({
123
- name: 'init',
124
- description: 'Настроить стенды в текущем проекте: создать .runbook/, .gitignore и зарегистрировать проект',
125
- }),
126
- __metadata("design:paramtypes", [ui_service_1.UiService,
127
- registry_service_1.RegistryService,
128
- runbook_service_1.RunbookService])
129
- ], OpsInitCommand);
130
- //# sourceMappingURL=ops-init.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-init.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-init.command.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- import { RunbookService } from '../../shared/runbook/runbook.service';
5
- export declare class OpsListCommand extends CommandRunner {
6
- private readonly ui;
7
- private readonly registry;
8
- private readonly runbook;
9
- constructor(ui: UiService, registry: RegistryService, runbook: RunbookService);
10
- run(): Promise<void>;
11
- private readActiveStand;
12
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpsListCommand = void 0;
13
- const nest_commander_1 = require("nest-commander");
14
- const registry_service_1 = require("../../core/registry/registry.service");
15
- const ui_service_1 = require("../../core/ui/ui.service");
16
- const runbook_service_1 = require("../../shared/runbook/runbook.service");
17
- let OpsListCommand = class OpsListCommand extends nest_commander_1.CommandRunner {
18
- ui;
19
- registry;
20
- runbook;
21
- constructor(ui, registry, runbook) {
22
- super();
23
- this.ui = ui;
24
- this.registry = registry;
25
- this.runbook = runbook;
26
- }
27
- async run() {
28
- try {
29
- const projects = await this.registry.list();
30
- const names = Object.keys(projects).sort((a, b) => a.localeCompare(b));
31
- if (names.length === 0) {
32
- this.ui.log.info('Реестр пуст. Добавь проект: kodu ops add <name> --path <dir>');
33
- this.ui.log.info(`Файл реестра: ${this.registry.getFilePath()}`);
34
- return;
35
- }
36
- for (const name of names) {
37
- const entry = projects[name];
38
- const active = await this.readActiveStand(entry.path);
39
- const activeLabel = active ? ` [активный: ${active}]` : '';
40
- this.ui.log.info(`${name}${activeLabel}`);
41
- this.ui.log.info(` путь: ${entry.path}`);
42
- this.ui.log.info(` стенды: ${entry.stands.join(', ')}`);
43
- }
44
- }
45
- catch (error) {
46
- this.ui.log.error(error.message);
47
- process.exitCode = 1;
48
- }
49
- }
50
- async readActiveStand(root) {
51
- try {
52
- if (!(await this.runbook.exists(root))) {
53
- return undefined;
54
- }
55
- return (await this.runbook.readConfig(root)).activeStand;
56
- }
57
- catch {
58
- return undefined;
59
- }
60
- }
61
- };
62
- exports.OpsListCommand = OpsListCommand;
63
- exports.OpsListCommand = OpsListCommand = __decorate([
64
- (0, nest_commander_1.SubCommand)({
65
- name: 'list',
66
- aliases: ['ls'],
67
- description: 'Показать все проекты из реестра и их активные стенды',
68
- }),
69
- __metadata("design:paramtypes", [ui_service_1.UiService,
70
- registry_service_1.RegistryService,
71
- runbook_service_1.RunbookService])
72
- ], OpsListCommand);
73
- //# sourceMappingURL=ops-list.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-list.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-list.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAA2D;AAC3D,2EAAuE;AACvE,yDAAqD;AACrD,0EAAsE;AAO/D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,8BAAa;IAE5B;IACA;IACA;IAHnB,YACmB,EAAa,EACb,QAAyB,EACzB,OAAuB;QAExC,KAAK,EAAE,CAAC;QAJS,OAAE,GAAF,EAAE,CAAW;QACb,aAAQ,GAAR,QAAQ,CAAiB;QACzB,YAAO,GAAP,OAAO,CAAgB;IAG1C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CACd,8DAA8D,CAC/D,CAAC;gBACF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF,CAAA;AA9CY,wCAAc;yBAAd,cAAc;IAL1B,IAAA,2BAAU,EAAC;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,WAAW,EAAE,sDAAsD;KACpE,CAAC;qCAGuB,sBAAS;QACH,kCAAe;QAChB,gCAAc;GAJ/B,cAAc,CA8C1B"}
@@ -1,9 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- export declare class OpsPathCommand extends CommandRunner {
5
- private readonly ui;
6
- private readonly registry;
7
- constructor(ui: UiService, registry: RegistryService);
8
- run(inputs: string[]): Promise<void>;
9
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpsPathCommand = void 0;
13
- const nest_commander_1 = require("nest-commander");
14
- const registry_service_1 = require("../../core/registry/registry.service");
15
- const ui_service_1 = require("../../core/ui/ui.service");
16
- const ops_helpers_1 = require("./ops.helpers");
17
- let OpsPathCommand = class OpsPathCommand extends nest_commander_1.CommandRunner {
18
- ui;
19
- registry;
20
- constructor(ui, registry) {
21
- super();
22
- this.ui = ui;
23
- this.registry = registry;
24
- }
25
- async run(inputs) {
26
- const name = inputs[0];
27
- if (!name) {
28
- this.ui.log.error('Укажи имя проекта: kodu ops path <name>');
29
- process.exitCode = 1;
30
- return;
31
- }
32
- try {
33
- const root = await (0, ops_helpers_1.resolveProjectRoot)(this.registry, name);
34
- process.stdout.write(`${root}\n`);
35
- }
36
- catch (error) {
37
- this.ui.log.error(error.message);
38
- process.exitCode = 1;
39
- }
40
- }
41
- };
42
- exports.OpsPathCommand = OpsPathCommand;
43
- exports.OpsPathCommand = OpsPathCommand = __decorate([
44
- (0, nest_commander_1.SubCommand)({
45
- name: 'path',
46
- description: 'Напечатать путь к репозиторию проекта (удобно для cd $(kodu ops path <name>))',
47
- arguments: '<name>',
48
- }),
49
- __metadata("design:paramtypes", [ui_service_1.UiService,
50
- registry_service_1.RegistryService])
51
- ], OpsPathCommand);
52
- //# sourceMappingURL=ops-path.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-path.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-path.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAA2D;AAC3D,2EAAuE;AACvE,yDAAqD;AACrD,+CAAmD;AAQ5C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,8BAAa;IAE5B;IACA;IAFnB,YACmB,EAAa,EACb,QAAyB;QAE1C,KAAK,EAAE,CAAC;QAHS,OAAE,GAAF,EAAE,CAAW;QACb,aAAQ,GAAR,QAAQ,CAAiB;IAG5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgB;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAkB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF,CAAA;AA1BY,wCAAc;yBAAd,cAAc;IAN1B,IAAA,2BAAU,EAAC;QACV,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,+EAA+E;QACjF,SAAS,EAAE,QAAQ;KACpB,CAAC;qCAGuB,sBAAS;QACH,kCAAe;GAHjC,cAAc,CA0B1B"}
@@ -1,12 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- import { RunbookService } from '../../shared/runbook/runbook.service';
5
- export declare class OpsRunbookCommand extends CommandRunner {
6
- private readonly ui;
7
- private readonly registry;
8
- private readonly runbook;
9
- constructor(ui: UiService, registry: RegistryService, runbook: RunbookService);
10
- run(inputs: string[]): Promise<void>;
11
- private extractStand;
12
- }
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpsRunbookCommand = void 0;
13
- const nest_commander_1 = require("nest-commander");
14
- const registry_service_1 = require("../../core/registry/registry.service");
15
- const ui_service_1 = require("../../core/ui/ui.service");
16
- const runbook_service_1 = require("../../shared/runbook/runbook.service");
17
- const ops_helpers_1 = require("./ops.helpers");
18
- let OpsRunbookCommand = class OpsRunbookCommand extends nest_commander_1.CommandRunner {
19
- ui;
20
- registry;
21
- runbook;
22
- constructor(ui, registry, runbook) {
23
- super();
24
- this.ui = ui;
25
- this.registry = registry;
26
- this.runbook = runbook;
27
- }
28
- async run(inputs) {
29
- const name = inputs[0];
30
- const stand = inputs[1];
31
- if (!name) {
32
- this.ui.log.error('Укажи имя проекта: kodu ops runbook <name> [stand]');
33
- process.exitCode = 1;
34
- return;
35
- }
36
- try {
37
- const root = await (0, ops_helpers_1.resolveProjectRoot)(this.registry, name);
38
- if (!(await this.runbook.exists(root))) {
39
- this.ui.log.warn(`В проекте "${name}" нет .runbook/. Запусти: kodu ops init`);
40
- process.exitCode = 1;
41
- return;
42
- }
43
- const markdown = await this.runbook.readRunbook(root);
44
- const output = stand ? this.extractStand(markdown, stand) : markdown;
45
- if (!output) {
46
- this.ui.log.warn(`Секция для стенда "${stand}" не найдена в runbook.`);
47
- process.exitCode = 1;
48
- return;
49
- }
50
- process.stdout.write(`${output.trimEnd()}\n`);
51
- }
52
- catch (error) {
53
- this.ui.log.error(error.message);
54
- process.exitCode = 1;
55
- }
56
- }
57
- extractStand(markdown, stand) {
58
- const lines = markdown.split(/\r?\n/);
59
- const startPrefix = `## Стенд: ${stand}`;
60
- const start = lines.findIndex((line) => line.startsWith(startPrefix));
61
- if (start === -1) {
62
- return undefined;
63
- }
64
- const rest = lines.slice(start + 1);
65
- const nextHeading = rest.findIndex((line) => line.startsWith('## '));
66
- const end = nextHeading === -1 ? lines.length : start + 1 + nextHeading;
67
- return lines.slice(start, end).join('\n');
68
- }
69
- };
70
- exports.OpsRunbookCommand = OpsRunbookCommand;
71
- exports.OpsRunbookCommand = OpsRunbookCommand = __decorate([
72
- (0, nest_commander_1.SubCommand)({
73
- name: 'runbook',
74
- description: 'Напечатать runbook проекта (или секцию конкретного стенда)',
75
- arguments: '<name> [stand]',
76
- }),
77
- __metadata("design:paramtypes", [ui_service_1.UiService,
78
- registry_service_1.RegistryService,
79
- runbook_service_1.RunbookService])
80
- ], OpsRunbookCommand);
81
- //# sourceMappingURL=ops-runbook.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-runbook.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-runbook.command.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- import { RunbookService } from '../../shared/runbook/runbook.service';
5
- export declare class OpsStatusCommand extends CommandRunner {
6
- private readonly ui;
7
- private readonly registry;
8
- private readonly runbook;
9
- constructor(ui: UiService, registry: RegistryService, runbook: RunbookService);
10
- run(inputs: string[]): Promise<void>;
11
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpsStatusCommand = void 0;
13
- const nest_commander_1 = require("nest-commander");
14
- const registry_service_1 = require("../../core/registry/registry.service");
15
- const ui_service_1 = require("../../core/ui/ui.service");
16
- const runbook_service_1 = require("../../shared/runbook/runbook.service");
17
- const ops_helpers_1 = require("./ops.helpers");
18
- let OpsStatusCommand = class OpsStatusCommand extends nest_commander_1.CommandRunner {
19
- ui;
20
- registry;
21
- runbook;
22
- constructor(ui, registry, runbook) {
23
- super();
24
- this.ui = ui;
25
- this.registry = registry;
26
- this.runbook = runbook;
27
- }
28
- async run(inputs) {
29
- try {
30
- const name = inputs[0];
31
- const root = name
32
- ? await (0, ops_helpers_1.resolveProjectRoot)(this.registry, name)
33
- : process.cwd();
34
- if (!(await this.runbook.exists(root))) {
35
- this.ui.log.warn(`В ${root} нет .runbook/. Инициализируй проект: kodu ops init`);
36
- process.exitCode = 1;
37
- return;
38
- }
39
- const config = await this.runbook.readConfig(root);
40
- this.ui.log.info(`Проект: ${config.project}`);
41
- this.ui.log.info(`Активный стенд: ${config.activeStand}`);
42
- this.ui.log.info(`Стенды: ${config.stands.join(', ')}`);
43
- this.ui.log.info(`Путь: ${root}`);
44
- }
45
- catch (error) {
46
- this.ui.log.error(error.message);
47
- process.exitCode = 1;
48
- }
49
- }
50
- };
51
- exports.OpsStatusCommand = OpsStatusCommand;
52
- exports.OpsStatusCommand = OpsStatusCommand = __decorate([
53
- (0, nest_commander_1.SubCommand)({
54
- name: 'status',
55
- description: 'Показать активный стенд и стенды проекта (по имени или в текущей папке)',
56
- arguments: '[name]',
57
- }),
58
- __metadata("design:paramtypes", [ui_service_1.UiService,
59
- registry_service_1.RegistryService,
60
- runbook_service_1.RunbookService])
61
- ], OpsStatusCommand);
62
- //# sourceMappingURL=ops-status.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-status.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-status.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAA2D;AAC3D,2EAAuE;AACvE,yDAAqD;AACrD,0EAAsE;AACtE,+CAAmD;AAQ5C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,8BAAa;IAE9B;IACA;IACA;IAHnB,YACmB,EAAa,EACb,QAAyB,EACzB,OAAuB;QAExC,KAAK,EAAE,CAAC;QAJS,OAAE,GAAF,EAAE,CAAW;QACb,aAAQ,GAAR,QAAQ,CAAiB;QACzB,YAAO,GAAP,OAAO,CAAgB;IAG1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgB;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI;gBACf,CAAC,CAAC,MAAM,IAAA,gCAAkB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAC/C,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAElB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CACd,KAAK,IAAI,qDAAqD,CAC/D,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF,CAAA;AAlCY,4CAAgB;2BAAhB,gBAAgB;IAN5B,IAAA,2BAAU,EAAC;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,yEAAyE;QAC3E,SAAS,EAAE,QAAQ;KACpB,CAAC;qCAGuB,sBAAS;QACH,kCAAe;QAChB,gCAAc;GAJ/B,gBAAgB,CAkC5B"}
@@ -1,12 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- import { RunbookService } from '../../shared/runbook/runbook.service';
5
- export declare class OpsUseCommand extends CommandRunner {
6
- private readonly ui;
7
- private readonly registry;
8
- private readonly runbook;
9
- constructor(ui: UiService, registry: RegistryService, runbook: RunbookService);
10
- run(inputs: string[]): Promise<void>;
11
- private resolveTarget;
12
- }
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.OpsUseCommand = void 0;
13
- const nest_commander_1 = require("nest-commander");
14
- const registry_service_1 = require("../../core/registry/registry.service");
15
- const ui_service_1 = require("../../core/ui/ui.service");
16
- const runbook_service_1 = require("../../shared/runbook/runbook.service");
17
- const ops_helpers_1 = require("./ops.helpers");
18
- let OpsUseCommand = class OpsUseCommand extends nest_commander_1.CommandRunner {
19
- ui;
20
- registry;
21
- runbook;
22
- constructor(ui, registry, runbook) {
23
- super();
24
- this.ui = ui;
25
- this.registry = registry;
26
- this.runbook = runbook;
27
- }
28
- async run(inputs) {
29
- try {
30
- const { root, stand } = await this.resolveTarget(inputs);
31
- if (!stand) {
32
- this.ui.log.error('Укажи стенд: kodu ops use <stand> или kodu ops use <name> <stand>');
33
- process.exitCode = 1;
34
- return;
35
- }
36
- if (!(await this.runbook.exists(root))) {
37
- this.ui.log.warn(`В ${root} нет .runbook/. Инициализируй проект: kodu ops init`);
38
- process.exitCode = 1;
39
- return;
40
- }
41
- const config = await this.runbook.readConfig(root);
42
- const stands = config.stands.includes(stand)
43
- ? config.stands
44
- : [...config.stands, stand];
45
- if (!config.stands.includes(stand)) {
46
- this.ui.log.info(`Стенд "${stand}" добавлен в список стендов проекта.`);
47
- }
48
- await this.runbook.writeConfig({ ...config, activeStand: stand, stands }, root);
49
- this.ui.log.success(`Активный стенд проекта "${config.project}" → ${stand}`);
50
- }
51
- catch (error) {
52
- this.ui.log.error(error.message);
53
- process.exitCode = 1;
54
- }
55
- }
56
- async resolveTarget(inputs) {
57
- if (inputs.length >= 2) {
58
- const root = await (0, ops_helpers_1.resolveProjectRoot)(this.registry, inputs[0]);
59
- return { root, stand: inputs[1] };
60
- }
61
- return { root: process.cwd(), stand: inputs[0] };
62
- }
63
- };
64
- exports.OpsUseCommand = OpsUseCommand;
65
- exports.OpsUseCommand = OpsUseCommand = __decorate([
66
- (0, nest_commander_1.SubCommand)({
67
- name: 'use',
68
- aliases: ['switch'],
69
- description: 'Переключить активный стенд: "kodu ops use <stand>" в текущем проекте или "kodu ops use <name> <stand>"',
70
- arguments: '<args...>',
71
- }),
72
- __metadata("design:paramtypes", [ui_service_1.UiService,
73
- registry_service_1.RegistryService,
74
- runbook_service_1.RunbookService])
75
- ], OpsUseCommand);
76
- //# sourceMappingURL=ops-use.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-use.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-use.command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { UiService } from '../../core/ui/ui.service';
3
- export declare class OpsCommand extends CommandRunner {
4
- private readonly ui;
5
- constructor(ui: UiService);
6
- run(): Promise<void>;
7
- }