complexity-cli 1.0.0 → 1.1.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 (54) hide show
  1. package/README.md +14 -6
  2. package/dist/index.js +487 -46
  3. package/package.json +10 -6
  4. package/dist/commands/add.d.ts +0 -4
  5. package/dist/commands/add.d.ts.map +0 -1
  6. package/dist/commands/add.js +0 -109
  7. package/dist/commands/add.js.map +0 -1
  8. package/dist/commands/init.d.ts +0 -5
  9. package/dist/commands/init.d.ts.map +0 -1
  10. package/dist/commands/init.js +0 -85
  11. package/dist/commands/init.js.map +0 -1
  12. package/dist/commands/list.d.ts +0 -2
  13. package/dist/commands/list.d.ts.map +0 -1
  14. package/dist/commands/list.js +0 -58
  15. package/dist/commands/list.js.map +0 -1
  16. package/dist/commands/prompt.d.ts +0 -2
  17. package/dist/commands/prompt.d.ts.map +0 -1
  18. package/dist/commands/prompt.js +0 -38
  19. package/dist/commands/prompt.js.map +0 -1
  20. package/dist/commands/remove.d.ts +0 -4
  21. package/dist/commands/remove.d.ts.map +0 -1
  22. package/dist/commands/remove.js +0 -86
  23. package/dist/commands/remove.js.map +0 -1
  24. package/dist/commands/update.d.ts +0 -6
  25. package/dist/commands/update.d.ts.map +0 -1
  26. package/dist/commands/update.js +0 -125
  27. package/dist/commands/update.js.map +0 -1
  28. package/dist/core/generator.d.ts +0 -5
  29. package/dist/core/generator.d.ts.map +0 -1
  30. package/dist/core/generator.js +0 -96
  31. package/dist/core/generator.js.map +0 -1
  32. package/dist/core/parser.d.ts +0 -4
  33. package/dist/core/parser.d.ts.map +0 -1
  34. package/dist/core/parser.js +0 -144
  35. package/dist/core/parser.js.map +0 -1
  36. package/dist/core/validator.d.ts +0 -6
  37. package/dist/core/validator.d.ts.map +0 -1
  38. package/dist/core/validator.js +0 -22
  39. package/dist/core/validator.js.map +0 -1
  40. package/dist/index.d.ts +0 -3
  41. package/dist/index.d.ts.map +0 -1
  42. package/dist/index.js.map +0 -1
  43. package/dist/utils/error-helpers.d.ts +0 -4
  44. package/dist/utils/error-helpers.d.ts.map +0 -1
  45. package/dist/utils/error-helpers.js +0 -26
  46. package/dist/utils/error-helpers.js.map +0 -1
  47. package/dist/utils/prompts.d.ts +0 -3
  48. package/dist/utils/prompts.d.ts.map +0 -1
  49. package/dist/utils/prompts.js +0 -37
  50. package/dist/utils/prompts.js.map +0 -1
  51. package/dist/utils/types.d.ts +0 -17
  52. package/dist/utils/types.d.ts.map +0 -1
  53. package/dist/utils/types.js +0 -3
  54. package/dist/utils/types.js.map +0 -1
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateStats = calculateStats;
4
- exports.sortConcepts = sortConcepts;
5
- exports.generateMarkdown = generateMarkdown;
6
- function calculateStats(concepts) {
7
- const uniqueAreas = new Set(concepts
8
- .map(c => c.area)
9
- .filter(a => a && a !== '___'));
10
- return {
11
- totalConcepts: concepts.length,
12
- totalAreas: uniqueAreas.size,
13
- criticalCount: concepts.filter(c => c.criticality === 3).length,
14
- importantCount: concepts.filter(c => c.criticality === 2).length,
15
- situationalCount: concepts.filter(c => c.criticality === 1).length,
16
- };
17
- }
18
- function sortConcepts(concepts) {
19
- return [...concepts].sort((a, b) => {
20
- if (a.criticality !== b.criticality) {
21
- return b.criticality - a.criticality;
22
- }
23
- return a.topic.localeCompare(b.topic);
24
- });
25
- }
26
- function generateMarkdown(projectName, concepts) {
27
- const stats = calculateStats(concepts);
28
- const sorted = sortConcepts(concepts);
29
- const critical = sorted.filter(c => c.criticality === 3);
30
- const important = sorted.filter(c => c.criticality === 2);
31
- const situational = sorted.filter(c => c.criticality === 1);
32
- const lines = [];
33
- lines.push('# Project Complexity & Knowledge Map');
34
- lines.push('');
35
- lines.push(`<!-- Replace {Project Name} with your project name -->`);
36
- lines.push(`A guide to what you need to know to work on ${projectName}, broken into three tiers.`);
37
- lines.push('');
38
- lines.push(`> **${stats.totalConcepts} technologies/concepts** across ${stats.totalAreas} areas`);
39
- lines.push(`> **${stats.criticalCount} critical**`);
40
- lines.push(`> **${stats.importantCount} important**`);
41
- lines.push(`> **${stats.situationalCount} situational**`);
42
- lines.push('');
43
- lines.push('---');
44
- lines.push('');
45
- lines.push('## **What you NEED to know to do any meaningful work**');
46
- lines.push('');
47
- if (critical.length > 0) {
48
- critical.forEach(c => lines.push(`- ${c.topic}`));
49
- }
50
- else {
51
- lines.push('<!-- Criticality 3 items from the table below -->');
52
- }
53
- lines.push('');
54
- lines.push('## **What you SHOULD know to be very helpful**');
55
- lines.push('');
56
- if (important.length > 0) {
57
- important.forEach(c => lines.push(`- ${c.topic}`));
58
- }
59
- else {
60
- lines.push('<!-- Everything above, plus Criticality 2 items -->');
61
- }
62
- lines.push('');
63
- lines.push('## **What you should EVENTUALLY learn for specific areas**');
64
- lines.push('');
65
- if (situational.length > 0) {
66
- situational.forEach(c => lines.push(`- ${c.topic}`));
67
- }
68
- else {
69
- lines.push('<!-- Criticality 1 items -->');
70
- }
71
- lines.push('');
72
- lines.push('---');
73
- lines.push('');
74
- lines.push('## Full Reference');
75
- lines.push('');
76
- lines.push('<!--');
77
- lines.push(' Criticality scale:');
78
- lines.push(' 3 = Can\'t do meaningful work without it');
79
- lines.push(' 2 = Will encounter regularly; gaps will slow you down');
80
- lines.push(' 1 = Comes up occasionally or is abstracted away enough to learn on the job');
81
- lines.push('-->');
82
- lines.push('');
83
- lines.push('| Topic | Area | Criticality (1-3) |');
84
- lines.push('|---|---|---|');
85
- if (sorted.length > 0) {
86
- sorted.forEach(c => {
87
- lines.push(`| ${c.topic} | ${c.area} | ${c.criticality} |`);
88
- });
89
- }
90
- else {
91
- lines.push('| | | |');
92
- }
93
- lines.push('');
94
- return lines.join('\n');
95
- }
96
- //# sourceMappingURL=generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ComplexityDocument } from '../utils/types';
2
- export declare function parseComplexityFile(filePath: string): ComplexityDocument;
3
- export declare function findComplexityFile(startDir?: string): string | null;
4
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAgF7D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAYxE;AA0CD,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAMlF"}
@@ -1,144 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.parseComplexityFile = parseComplexityFile;
37
- exports.findComplexityFile = findComplexityFile;
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const COMPLEXITY_FILE = 'COMPLEXITY.md';
41
- const BLANK_AREA = '___';
42
- const DEFAULT_PROJECT_NAME = 'Project Name';
43
- function extractProjectName(lines) {
44
- const projectNameLine = lines[3];
45
- if (!projectNameLine) {
46
- return DEFAULT_PROJECT_NAME;
47
- }
48
- const match = projectNameLine.match(/A guide to what you need to know to work on (.+?), broken/);
49
- return match ? match[1] : DEFAULT_PROJECT_NAME;
50
- }
51
- function findTableStartIndex(lines) {
52
- for (let i = 0; i < lines.length; i++) {
53
- if (lines[i].trim().startsWith('| Topic | Area | Criticality')) {
54
- return i + 2;
55
- }
56
- }
57
- return -1;
58
- }
59
- function isValidCriticality(criticality) {
60
- return !isNaN(criticality) && criticality >= 1 && criticality <= 3;
61
- }
62
- function parseTableRow(line) {
63
- const parts = line.split('|').map(p => p.trim()).filter(p => p);
64
- if (parts.length !== 3) {
65
- return null;
66
- }
67
- const [topic, area, criticalityStr] = parts;
68
- if (!topic || topic === 'Topic') {
69
- return null;
70
- }
71
- const criticality = parseInt(criticalityStr);
72
- if (!isValidCriticality(criticality)) {
73
- return null;
74
- }
75
- return {
76
- topic,
77
- area: area || BLANK_AREA,
78
- criticality
79
- };
80
- }
81
- function parseTableRows(lines, startIndex) {
82
- if (startIndex === -1) {
83
- return [];
84
- }
85
- const concepts = [];
86
- for (let i = startIndex; i < lines.length; i++) {
87
- const line = lines[i].trim();
88
- if (!line.startsWith('|')) {
89
- break;
90
- }
91
- const concept = parseTableRow(line);
92
- if (concept) {
93
- concepts.push(concept);
94
- }
95
- }
96
- return concepts;
97
- }
98
- function parseComplexityFile(filePath) {
99
- if (!fs.existsSync(filePath)) {
100
- throw new Error(`COMPLEXITY.md not found at: ${filePath}`);
101
- }
102
- const content = fs.readFileSync(filePath, 'utf-8');
103
- const lines = content.split('\n');
104
- return {
105
- projectName: extractProjectName(lines),
106
- concepts: parseTableRows(lines, findTableStartIndex(lines))
107
- };
108
- }
109
- function findGitRoot(startDir) {
110
- let searchDir = startDir;
111
- const filesystemRoot = path.parse(searchDir).root;
112
- while (searchDir !== filesystemRoot) {
113
- if (fs.existsSync(path.join(searchDir, '.git'))) {
114
- return searchDir;
115
- }
116
- searchDir = path.dirname(searchDir);
117
- }
118
- return null;
119
- }
120
- function searchUpwardForFile(startDir, filename, stopAtDir) {
121
- let currentDir = startDir;
122
- while (true) {
123
- const filePath = path.join(currentDir, filename);
124
- if (fs.existsSync(filePath)) {
125
- return filePath;
126
- }
127
- if (currentDir === stopAtDir) {
128
- break;
129
- }
130
- const parentDir = path.dirname(currentDir);
131
- if (parentDir === currentDir) {
132
- break;
133
- }
134
- currentDir = parentDir;
135
- }
136
- return null;
137
- }
138
- function findComplexityFile(startDir = process.cwd()) {
139
- const resolvedStartDir = path.resolve(startDir);
140
- const gitRoot = findGitRoot(resolvedStartDir);
141
- const searchLimit = gitRoot || path.parse(resolvedStartDir).root;
142
- return searchUpwardForFile(resolvedStartDir, COMPLEXITY_FILE, searchLimit);
143
- }
144
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Concept } from '../utils/types';
2
- export declare function isDuplicate(concept: string, existingConcepts: Concept[]): boolean;
3
- export declare function isValidLevel(level: unknown): level is 1 | 2 | 3;
4
- export declare function isExistingArea(area: string, existingConcepts: Concept[]): boolean;
5
- export declare function findConcept(conceptName: string, concepts: Concept[]): Concept | undefined;
6
- //# sourceMappingURL=validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,OAAO,CAIjF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAG/D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,OAAO,CAGjF;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS,CAIzF"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDuplicate = isDuplicate;
4
- exports.isValidLevel = isValidLevel;
5
- exports.isExistingArea = isExistingArea;
6
- exports.findConcept = findConcept;
7
- function isDuplicate(concept, existingConcepts) {
8
- return existingConcepts.some(c => c.topic.toLowerCase() === concept.toLowerCase());
9
- }
10
- function isValidLevel(level) {
11
- const num = parseInt(level);
12
- return !isNaN(num) && num >= 1 && num <= 3;
13
- }
14
- function isExistingArea(area, existingConcepts) {
15
- if (!area || area === '___')
16
- return true;
17
- return existingConcepts.some(c => c.area.toLowerCase() === area.toLowerCase());
18
- }
19
- function findConcept(conceptName, concepts) {
20
- return concepts.find(c => c.topic.toLowerCase() === conceptName.toLowerCase());
21
- }
22
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":";;AAEA,kCAIC;AAED,oCAGC;AAED,wCAGC;AAED,kCAIC;AApBD,SAAgB,WAAW,CAAC,OAAe,EAAE,gBAA2B;IACtE,OAAO,gBAAgB,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAe,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY,EAAE,gBAA2B;IACtE,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAgB,WAAW,CAAC,WAAmB,EAAE,QAAmB;IAClE,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CACzD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,wCAA4C;AAC5C,8CAAkD;AAClD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,aAAa,EAAE,yBAAyB,CAAC;KAChD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,8BAA8B,CAAC;KACvC,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;KAC5D,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function exitWithError(message: string, hint?: string): never;
2
- export declare function exitWithUsageError(message: string, usageExample: string): never;
3
- export declare function exitCancelled(): never;
4
- //# sourceMappingURL=error-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/error-helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAMnE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,CAI/E;AAED,wBAAgB,aAAa,IAAI,KAAK,CAGrC"}
@@ -1,26 +0,0 @@
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.exitWithError = exitWithError;
7
- exports.exitWithUsageError = exitWithUsageError;
8
- exports.exitCancelled = exitCancelled;
9
- const chalk_1 = __importDefault(require("chalk"));
10
- function exitWithError(message, hint) {
11
- console.error(chalk_1.default.red(`Error: ${message}`));
12
- if (hint) {
13
- console.error(chalk_1.default.yellow(hint));
14
- }
15
- process.exit(1);
16
- }
17
- function exitWithUsageError(message, usageExample) {
18
- console.error(chalk_1.default.red(`Error: ${message}`));
19
- console.error(chalk_1.default.yellow(`Usage: ${usageExample}`));
20
- process.exit(1);
21
- }
22
- function exitCancelled() {
23
- console.log(chalk_1.default.yellow('Cancelled.'));
24
- process.exit(0);
25
- }
26
- //# sourceMappingURL=error-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-helpers.js","sourceRoot":"","sources":["../../src/utils/error-helpers.ts"],"names":[],"mappings":";;;;;AAEA,sCAMC;AAED,gDAIC;AAED,sCAGC;AAnBD,kDAA0B;AAE1B,SAAgB,aAAa,CAAC,OAAe,EAAE,IAAa;IAC1D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe,EAAE,YAAoB;IACtE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function confirmAction(message: string): Promise<boolean>;
2
- export declare function promptForInput(message: string, defaultValue?: string): Promise<string>;
3
- //# sourceMappingURL=prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB5F"}
@@ -1,37 +0,0 @@
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.confirmAction = confirmAction;
7
- exports.promptForInput = promptForInput;
8
- const inquirer_1 = __importDefault(require("inquirer"));
9
- async function confirmAction(message) {
10
- const { confirmed } = await inquirer_1.default.prompt([
11
- {
12
- type: 'confirm',
13
- name: 'confirmed',
14
- message,
15
- default: false,
16
- },
17
- ]);
18
- return confirmed;
19
- }
20
- async function promptForInput(message, defaultValue) {
21
- const { value } = await inquirer_1.default.prompt([
22
- {
23
- type: 'input',
24
- name: 'value',
25
- message,
26
- default: defaultValue,
27
- validate: (input) => {
28
- if (!input || input.trim() === '') {
29
- return 'This field is required';
30
- }
31
- return true;
32
- },
33
- },
34
- ]);
35
- return value;
36
- }
37
- //# sourceMappingURL=prompts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":";;;;;AAEA,sCAUC;AAED,wCAgBC;AA9BD,wDAAgC;AAEzB,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QAC1C;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,YAAqB;IACzE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QACtC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,OAAO;YACP,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAClC,OAAO,wBAAwB,CAAC;gBAClC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,17 +0,0 @@
1
- export interface Concept {
2
- topic: string;
3
- area: string;
4
- criticality: 1 | 2 | 3;
5
- }
6
- export interface ComplexityDocument {
7
- projectName: string;
8
- concepts: Concept[];
9
- }
10
- export interface Stats {
11
- totalConcepts: number;
12
- totalAreas: number;
13
- criticalCount: number;
14
- importantCount: number;
15
- situationalCount: number;
16
- }
17
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}