kodu 2.2.0 → 3.0.2

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 (234) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +40 -0
  3. package/package.json +12 -67
  4. package/scripts/install.js +68 -0
  5. package/scripts/postinstall.js +22 -0
  6. package/AGENTS.md +0 -214
  7. package/__tests__/core/fs/fs.service.test.ts +0 -72
  8. package/__tests__/core/registry/registry.service.test.ts +0 -82
  9. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  10. package/__tests__/shared/git/git.service.test.ts +0 -84
  11. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  12. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  13. package/biome.json +0 -50
  14. package/dist/package.json +0 -96
  15. package/dist/src/app.module.d.ts +0 -2
  16. package/dist/src/app.module.js +0 -42
  17. package/dist/src/app.module.js.map +0 -1
  18. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  19. package/dist/src/commands/clean/clean.command.js +0 -240
  20. package/dist/src/commands/clean/clean.command.js.map +0 -1
  21. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  22. package/dist/src/commands/clean/clean.module.js +0 -26
  23. package/dist/src/commands/clean/clean.module.js.map +0 -1
  24. package/dist/src/commands/init/init.command.d.ts +0 -10
  25. package/dist/src/commands/init/init.command.js +0 -96
  26. package/dist/src/commands/init/init.command.js.map +0 -1
  27. package/dist/src/commands/init/init.module.d.ts +0 -2
  28. package/dist/src/commands/init/init.module.js +0 -22
  29. package/dist/src/commands/init/init.module.js.map +0 -1
  30. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  31. package/dist/src/commands/ops/ops-add.command.js +0 -102
  32. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  33. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  34. package/dist/src/commands/ops/ops-init.command.js +0 -130
  35. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  36. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  37. package/dist/src/commands/ops/ops-list.command.js +0 -73
  38. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  39. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  40. package/dist/src/commands/ops/ops-path.command.js +0 -52
  41. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  42. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  43. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  44. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  45. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  46. package/dist/src/commands/ops/ops-status.command.js +0 -62
  47. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  48. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  49. package/dist/src/commands/ops/ops-use.command.js +0 -76
  50. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  51. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  52. package/dist/src/commands/ops/ops.command.js +0 -56
  53. package/dist/src/commands/ops/ops.command.js.map +0 -1
  54. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  55. package/dist/src/commands/ops/ops.helpers.js +0 -11
  56. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  57. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  58. package/dist/src/commands/ops/ops.module.js +0 -36
  59. package/dist/src/commands/ops/ops.module.js.map +0 -1
  60. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  61. package/dist/src/commands/pack/pack.command.js +0 -355
  62. package/dist/src/commands/pack/pack.command.js.map +0 -1
  63. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  64. package/dist/src/commands/pack/pack.module.js +0 -27
  65. package/dist/src/commands/pack/pack.module.js.map +0 -1
  66. package/dist/src/core/config/config.module.d.ts +0 -2
  67. package/dist/src/core/config/config.module.js +0 -23
  68. package/dist/src/core/config/config.module.js.map +0 -1
  69. package/dist/src/core/config/config.schema.d.ts +0 -19
  70. package/dist/src/core/config/config.schema.js +0 -56
  71. package/dist/src/core/config/config.schema.js.map +0 -1
  72. package/dist/src/core/config/config.service.d.ts +0 -7
  73. package/dist/src/core/config/config.service.js +0 -49
  74. package/dist/src/core/config/config.service.js.map +0 -1
  75. package/dist/src/core/config/prompt.service.d.ts +0 -10
  76. package/dist/src/core/config/prompt.service.js +0 -80
  77. package/dist/src/core/config/prompt.service.js.map +0 -1
  78. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  79. package/dist/src/core/file-system/fs.module.js +0 -21
  80. package/dist/src/core/file-system/fs.module.js.map +0 -1
  81. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  82. package/dist/src/core/file-system/fs.service.js +0 -203
  83. package/dist/src/core/file-system/fs.service.js.map +0 -1
  84. package/dist/src/core/registry/registry.module.d.ts +0 -2
  85. package/dist/src/core/registry/registry.module.js +0 -22
  86. package/dist/src/core/registry/registry.module.js.map +0 -1
  87. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  88. package/dist/src/core/registry/registry.schema.js +0 -21
  89. package/dist/src/core/registry/registry.schema.js.map +0 -1
  90. package/dist/src/core/registry/registry.service.d.ts +0 -16
  91. package/dist/src/core/registry/registry.service.js +0 -91
  92. package/dist/src/core/registry/registry.service.js.map +0 -1
  93. package/dist/src/core/ui/ui.module.d.ts +0 -2
  94. package/dist/src/core/ui/ui.module.js +0 -22
  95. package/dist/src/core/ui/ui.module.js.map +0 -1
  96. package/dist/src/core/ui/ui.service.d.ts +0 -22
  97. package/dist/src/core/ui/ui.service.js +0 -43
  98. package/dist/src/core/ui/ui.service.js.map +0 -1
  99. package/dist/src/main.d.ts +0 -2
  100. package/dist/src/main.js +0 -16
  101. package/dist/src/main.js.map +0 -1
  102. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  103. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  104. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  105. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  106. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  107. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  108. package/dist/src/shared/constants.d.ts +0 -4
  109. package/dist/src/shared/constants.js +0 -113
  110. package/dist/src/shared/constants.js.map +0 -1
  111. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  112. package/dist/src/shared/deps/deps.module.js +0 -21
  113. package/dist/src/shared/deps/deps.module.js.map +0 -1
  114. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  115. package/dist/src/shared/deps/deps.service.js +0 -114
  116. package/dist/src/shared/deps/deps.service.js.map +0 -1
  117. package/dist/src/shared/git/git.module.d.ts +0 -2
  118. package/dist/src/shared/git/git.module.js +0 -21
  119. package/dist/src/shared/git/git.module.js.map +0 -1
  120. package/dist/src/shared/git/git.service.d.ts +0 -5
  121. package/dist/src/shared/git/git.service.js +0 -56
  122. package/dist/src/shared/git/git.service.js.map +0 -1
  123. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  124. package/dist/src/shared/runbook/runbook.module.js +0 -22
  125. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  126. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  127. package/dist/src/shared/runbook/runbook.service.js +0 -118
  128. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  129. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  130. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  131. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  132. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  133. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  134. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  135. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  136. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  137. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  138. package/dist/tsconfig.build.tsbuildinfo +0 -1
  139. package/docs/todo.md +0 -7
  140. package/knip.json +0 -10
  141. package/kodu.json +0 -63
  142. package/kodu.schema.json +0 -100
  143. package/lefthook.yml +0 -11
  144. package/nest-cli.json +0 -8
  145. package/registry.schema.json +0 -39
  146. package/scripts/generate-json-schema.ts +0 -27
  147. package/skills/ac/SKILL.md +0 -239
  148. package/skills/al/SKILL.md +0 -98
  149. package/skills/audit/SKILL.md +0 -205
  150. package/skills/audit/audit-baseline-template.yml +0 -188
  151. package/skills/audit/runtime-detect.md +0 -64
  152. package/skills/audit/stacks/_generic.md +0 -41
  153. package/skills/audit/stacks/_registry.md +0 -47
  154. package/skills/audit/stacks/go.md +0 -66
  155. package/skills/audit/stacks/java.md +0 -44
  156. package/skills/audit/stacks/node.md +0 -57
  157. package/skills/audit/stacks/python.md +0 -45
  158. package/skills/audit/stacks/rust.md +0 -44
  159. package/skills/audit-api-contracts/SKILL.md +0 -201
  160. package/skills/audit-architecture/SKILL.md +0 -200
  161. package/skills/audit-bugs/SKILL.md +0 -226
  162. package/skills/audit-concurrency/SKILL.md +0 -197
  163. package/skills/audit-deployment/SKILL.md +0 -218
  164. package/skills/audit-docs/SKILL.md +0 -209
  165. package/skills/audit-errors/SKILL.md +0 -216
  166. package/skills/audit-logging/SKILL.md +0 -197
  167. package/skills/audit-matrix/SKILL.md +0 -245
  168. package/skills/audit-meta/SKILL.md +0 -120
  169. package/skills/audit-naming/SKILL.md +0 -200
  170. package/skills/audit-owasp/SKILL.md +0 -223
  171. package/skills/audit-performance/SKILL.md +0 -199
  172. package/skills/audit-reinvention/SKILL.md +0 -214
  173. package/skills/audit-secrets/SKILL.md +0 -198
  174. package/skills/audit-tests/SKILL.md +0 -210
  175. package/skills/audit-validation/SKILL.md +0 -206
  176. package/skills/audit-verify/SKILL.md +0 -139
  177. package/skills/audit-yagni/SKILL.md +0 -188
  178. package/skills/doc-gen/SKILL.md +0 -490
  179. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  180. package/skills/generate-project-docs/SKILL.md +0 -380
  181. package/skills/implement-project/SKILL.md +0 -409
  182. package/skills/liteend-init/SKILL.md +0 -84
  183. package/skills/litefront-init/SKILL.md +0 -96
  184. package/skills/litefront-prototype/SKILL.md +0 -484
  185. package/skills/ops/SKILL.md +0 -94
  186. package/skills/post-call-task-builder/SKILL.md +0 -419
  187. package/skills/project-setup-standardizer/SKILL.md +0 -285
  188. package/skills/skills-best-practices/SKILL.md +0 -415
  189. package/skills/start/SKILL.md +0 -319
  190. package/skills/tech-blueprint/SKILL.md +0 -890
  191. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  192. package/src/app.module.ts +0 -29
  193. package/src/commands/clean/clean.command.ts +0 -235
  194. package/src/commands/clean/clean.module.ts +0 -13
  195. package/src/commands/init/init.command.ts +0 -92
  196. package/src/commands/init/init.module.ts +0 -9
  197. package/src/commands/ops/ops-add.command.ts +0 -83
  198. package/src/commands/ops/ops-init.command.ts +0 -125
  199. package/src/commands/ops/ops-list.command.ts +0 -57
  200. package/src/commands/ops/ops-path.command.ts +0 -38
  201. package/src/commands/ops/ops-runbook.command.ts +0 -74
  202. package/src/commands/ops/ops-status.command.ts +0 -47
  203. package/src/commands/ops/ops-use.command.ts +0 -76
  204. package/src/commands/ops/ops.command.ts +0 -42
  205. package/src/commands/ops/ops.helpers.ts +0 -20
  206. package/src/commands/ops/ops.module.ts +0 -23
  207. package/src/commands/pack/pack.command.ts +0 -347
  208. package/src/commands/pack/pack.module.ts +0 -14
  209. package/src/core/config/config.module.ts +0 -10
  210. package/src/core/config/config.schema.ts +0 -58
  211. package/src/core/config/config.service.ts +0 -43
  212. package/src/core/config/prompt.service.ts +0 -80
  213. package/src/core/file-system/fs.module.ts +0 -8
  214. package/src/core/file-system/fs.service.ts +0 -248
  215. package/src/core/registry/registry.module.ts +0 -9
  216. package/src/core/registry/registry.schema.ts +0 -46
  217. package/src/core/registry/registry.service.ts +0 -128
  218. package/src/core/ui/ui.module.ts +0 -9
  219. package/src/core/ui/ui.service.ts +0 -39
  220. package/src/main.ts +0 -12
  221. package/src/shared/cleaner/cleaner.service.ts +0 -289
  222. package/src/shared/cleaner/cleaner.types.ts +0 -23
  223. package/src/shared/constants.ts +0 -118
  224. package/src/shared/deps/deps.module.ts +0 -8
  225. package/src/shared/deps/deps.service.ts +0 -175
  226. package/src/shared/git/git.module.ts +0 -8
  227. package/src/shared/git/git.service.ts +0 -47
  228. package/src/shared/runbook/runbook.module.ts +0 -9
  229. package/src/shared/runbook/runbook.service.ts +0 -164
  230. package/src/shared/runbook/runbook.templates.ts +0 -66
  231. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  232. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  233. package/tsconfig.build.json +0 -7
  234. 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":";;;;;;;;;;;;AAAA,mDAA2D;AAC3D,2EAAuE;AACvE,yDAAqD;AACrD,0EAAsE;AACtE,+CAAmD;AAS5C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,8BAAa;IAE3B;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,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CACf,mEAAmE,CACpE,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,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,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1C,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,sCAAsC,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAC5B,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EACzC,IAAI,CACL,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CACjB,2BAA2B,MAAM,CAAC,OAAO,OAAO,KAAK,EAAE,CACxD,CAAC;QACJ,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;IAGO,KAAK,CAAC,aAAa,CACzB,MAAgB;QAEhB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAkB,EAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;CACF,CAAA;AA9DY,sCAAa;wBAAb,aAAa;IAPzB,IAAA,2BAAU,EAAC;QACV,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,WAAW,EACT,wGAAwG;QAC1G,SAAS,EAAE,WAAW;KACvB,CAAC;qCAGuB,sBAAS;QACH,kCAAe;QAChB,gCAAc;GAJ/B,aAAa,CA8DzB"}
@@ -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
- }