@brainfile/cli 0.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.
- package/CHANGELOG.md +36 -0
- package/README.md +277 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +58 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +11 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +120 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/lint.d.ts +8 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +306 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/list.d.ts +8 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +136 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/move.d.ts +8 -0
- package/dist/commands/move.d.ts.map +1 -0
- package/dist/commands/move.js +133 -0
- package/dist/commands/move.js.map +1 -0
- package/dist/commands/template.d.ts +11 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +167 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,306 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.lintCommand = lintCommand;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const core_1 = require("@brainfile/core");
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
+
const yaml = __importStar(require("js-yaml"));
|
|
45
|
+
function lintCommand(options) {
|
|
46
|
+
try {
|
|
47
|
+
// Resolve file path
|
|
48
|
+
const filePath = path.resolve(options.file);
|
|
49
|
+
// Check if file exists
|
|
50
|
+
if (!fs.existsSync(filePath)) {
|
|
51
|
+
console.error(chalk_1.default.red(`Error: File not found: ${filePath}`));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
// Read file content
|
|
55
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
56
|
+
const issues = [];
|
|
57
|
+
let fixedContent = content;
|
|
58
|
+
console.log(chalk_1.default.blue(`\nš Linting: ${filePath}\n`));
|
|
59
|
+
// Step 1: Check for fixable YAML issues (unquoted strings with colons)
|
|
60
|
+
const quotableStrings = findUnquotedStringsWithColons(content);
|
|
61
|
+
if (quotableStrings.length > 0) {
|
|
62
|
+
quotableStrings.forEach(({ line, text }) => {
|
|
63
|
+
issues.push({
|
|
64
|
+
type: 'warning',
|
|
65
|
+
message: `Unquoted string with colon at line ${line}: "${text}"`,
|
|
66
|
+
line,
|
|
67
|
+
fixable: true
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
if (options.fix) {
|
|
71
|
+
fixedContent = fixUnquotedStrings(content, quotableStrings);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Step 2: Check YAML syntax (use fixed content if fixes were applied)
|
|
75
|
+
const contentToValidate = options.fix && fixedContent !== content ? fixedContent : content;
|
|
76
|
+
const yamlIssues = checkYAMLSyntax(contentToValidate);
|
|
77
|
+
// Only report YAML issues if they persist after fixes
|
|
78
|
+
if (yamlIssues.length > 0) {
|
|
79
|
+
// If we applied fixes, check if the issues still exist
|
|
80
|
+
if (options.fix && fixedContent !== content) {
|
|
81
|
+
const remainingYamlIssues = checkYAMLSyntax(fixedContent);
|
|
82
|
+
issues.push(...remainingYamlIssues);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
issues.push(...yamlIssues);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Step 3: Validate board structure (if YAML is valid after any fixes)
|
|
89
|
+
const finalYamlIssues = options.fix ? checkYAMLSyntax(fixedContent) : yamlIssues;
|
|
90
|
+
if (finalYamlIssues.length === 0) {
|
|
91
|
+
const result = core_1.Brainfile.parseWithErrors(contentToValidate);
|
|
92
|
+
if (result.board) {
|
|
93
|
+
// Check for duplicate column IDs
|
|
94
|
+
const duplicates = findDuplicateColumnIds(result.board);
|
|
95
|
+
if (duplicates.length > 0) {
|
|
96
|
+
duplicates.forEach(id => {
|
|
97
|
+
issues.push({
|
|
98
|
+
type: 'warning',
|
|
99
|
+
message: `Duplicate column ID found: "${id}"`,
|
|
100
|
+
fixable: false
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Run structural validation
|
|
105
|
+
const validation = core_1.BrainfileValidator.validate(result.board);
|
|
106
|
+
if (!validation.valid) {
|
|
107
|
+
validation.errors.forEach(err => {
|
|
108
|
+
issues.push({
|
|
109
|
+
type: 'error',
|
|
110
|
+
message: `${err.path}: ${err.message}`,
|
|
111
|
+
fixable: false
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (result.error) {
|
|
117
|
+
issues.push({
|
|
118
|
+
type: 'error',
|
|
119
|
+
message: `Parse error: ${result.error}`,
|
|
120
|
+
fixable: false
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Report findings
|
|
125
|
+
if (issues.length === 0) {
|
|
126
|
+
console.log(chalk_1.default.green('ā No issues found! Your brainfile.md is valid.\n'));
|
|
127
|
+
return; // Success - don't exit, just return
|
|
128
|
+
}
|
|
129
|
+
// Group issues by type
|
|
130
|
+
const errors = issues.filter(i => i.type === 'error');
|
|
131
|
+
const warnings = issues.filter(i => i.type === 'warning');
|
|
132
|
+
const fixableCount = issues.filter(i => i.fixable).length;
|
|
133
|
+
// Display errors
|
|
134
|
+
if (errors.length > 0) {
|
|
135
|
+
console.log(chalk_1.default.red.bold(`ā ${errors.length} Error${errors.length > 1 ? 's' : ''}:`));
|
|
136
|
+
errors.forEach(issue => {
|
|
137
|
+
const location = issue.line ? chalk_1.default.gray(` [line ${issue.line}]`) : '';
|
|
138
|
+
console.log(chalk_1.default.red(` ⢠${issue.message}${location}`));
|
|
139
|
+
});
|
|
140
|
+
console.log();
|
|
141
|
+
}
|
|
142
|
+
// Display warnings
|
|
143
|
+
if (warnings.length > 0) {
|
|
144
|
+
console.log(chalk_1.default.yellow.bold(`ā ${warnings.length} Warning${warnings.length > 1 ? 's' : ''}:`));
|
|
145
|
+
warnings.forEach(issue => {
|
|
146
|
+
const location = issue.line ? chalk_1.default.gray(` [line ${issue.line}]`) : '';
|
|
147
|
+
const fixable = issue.fixable ? chalk_1.default.gray(' [fixable]') : '';
|
|
148
|
+
console.log(chalk_1.default.yellow(` ⢠${issue.message}${location}${fixable}`));
|
|
149
|
+
});
|
|
150
|
+
console.log();
|
|
151
|
+
}
|
|
152
|
+
// Apply fixes if requested
|
|
153
|
+
let remainingErrors = errors;
|
|
154
|
+
let remainingWarnings = warnings;
|
|
155
|
+
if (options.fix && fixableCount > 0) {
|
|
156
|
+
fs.writeFileSync(filePath, fixedContent, 'utf-8');
|
|
157
|
+
console.log(chalk_1.default.green(`ā Fixed ${fixableCount} issue${fixableCount > 1 ? 's' : ''}!\n`));
|
|
158
|
+
// Calculate remaining issues after fixes
|
|
159
|
+
const remainingIssues = issues.filter(i => !i.fixable);
|
|
160
|
+
remainingErrors = remainingIssues.filter(i => i.type === 'error');
|
|
161
|
+
remainingWarnings = remainingIssues.filter(i => i.type === 'warning');
|
|
162
|
+
if (remainingIssues.length > 0) {
|
|
163
|
+
console.log(chalk_1.default.yellow(`ā ${remainingIssues.length} issue${remainingIssues.length > 1 ? 's' : ''} remaining (not auto-fixable)\n`));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (fixableCount > 0 && !options.fix) {
|
|
167
|
+
console.log(chalk_1.default.gray(`š” Run with --fix to automatically fix ${fixableCount} issue${fixableCount > 1 ? 's' : ''}\n`));
|
|
168
|
+
}
|
|
169
|
+
// Summary
|
|
170
|
+
const displayIssues = options.fix ? (remainingErrors.length + remainingWarnings.length) : (errors.length + warnings.length);
|
|
171
|
+
console.log(chalk_1.default.gray('ā'.repeat(60)));
|
|
172
|
+
console.log(chalk_1.default.gray(`Total: ${displayIssues} issue${displayIssues > 1 ? 's' : ''} ${options.fix && fixableCount > 0 ? 'remaining' : 'found'}`));
|
|
173
|
+
if (fixableCount > 0 && !options.fix) {
|
|
174
|
+
console.log(chalk_1.default.gray(` ${fixableCount} fixable with --fix`));
|
|
175
|
+
}
|
|
176
|
+
console.log();
|
|
177
|
+
// Exit with error code in check mode
|
|
178
|
+
if (options.check) {
|
|
179
|
+
const checkErrors = options.fix ? remainingErrors : errors;
|
|
180
|
+
const checkWarnings = options.fix ? remainingWarnings : warnings;
|
|
181
|
+
if (checkErrors.length > 0 || checkWarnings.length > 0) {
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Normal mode: only exit 1 on errors (not warnings)
|
|
186
|
+
const finalErrors = options.fix ? remainingErrors : errors;
|
|
187
|
+
if (finalErrors.length > 0) {
|
|
188
|
+
process.exit(1);
|
|
189
|
+
}
|
|
190
|
+
// Success - don't exit, just return
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Check YAML syntax by attempting to parse
|
|
199
|
+
*/
|
|
200
|
+
function checkYAMLSyntax(content) {
|
|
201
|
+
const issues = [];
|
|
202
|
+
try {
|
|
203
|
+
const lines = content.split('\n');
|
|
204
|
+
// Find frontmatter boundaries
|
|
205
|
+
if (!lines[0].trim().startsWith('---')) {
|
|
206
|
+
issues.push({
|
|
207
|
+
type: 'error',
|
|
208
|
+
message: 'Missing YAML frontmatter opening (---)',
|
|
209
|
+
line: 1,
|
|
210
|
+
fixable: false
|
|
211
|
+
});
|
|
212
|
+
return issues;
|
|
213
|
+
}
|
|
214
|
+
let endIndex = -1;
|
|
215
|
+
for (let i = 1; i < lines.length; i++) {
|
|
216
|
+
if (lines[i].trim() === '---') {
|
|
217
|
+
endIndex = i;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (endIndex === -1) {
|
|
222
|
+
issues.push({
|
|
223
|
+
type: 'error',
|
|
224
|
+
message: 'Missing YAML frontmatter closing (---)',
|
|
225
|
+
fixable: false
|
|
226
|
+
});
|
|
227
|
+
return issues;
|
|
228
|
+
}
|
|
229
|
+
// Extract and parse YAML
|
|
230
|
+
const yamlContent = lines.slice(1, endIndex).join('\n');
|
|
231
|
+
yaml.load(yamlContent);
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
if (error.mark) {
|
|
235
|
+
issues.push({
|
|
236
|
+
type: 'error',
|
|
237
|
+
message: `YAML syntax error: ${error.message}`,
|
|
238
|
+
line: error.mark.line + 2, // Adjust for frontmatter offset
|
|
239
|
+
fixable: false
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
issues.push({
|
|
244
|
+
type: 'error',
|
|
245
|
+
message: `YAML error: ${error.message}`,
|
|
246
|
+
fixable: false
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return issues;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Find strings with colons that should be quoted
|
|
254
|
+
*/
|
|
255
|
+
function findUnquotedStringsWithColons(content) {
|
|
256
|
+
const results = [];
|
|
257
|
+
const lines = content.split('\n');
|
|
258
|
+
// Look for title: or rule: fields with unquoted strings containing colons
|
|
259
|
+
const titlePattern = /^(\s+)(title|rule):\s+([^"'][^"\n]*:\s*[^"\n]+)$/;
|
|
260
|
+
lines.forEach((line, index) => {
|
|
261
|
+
const match = line.match(titlePattern);
|
|
262
|
+
if (match) {
|
|
263
|
+
const text = match[3].trim();
|
|
264
|
+
// Check if it contains a colon followed by space (YAML separator)
|
|
265
|
+
if (text.includes(': ')) {
|
|
266
|
+
results.push({
|
|
267
|
+
line: index + 1,
|
|
268
|
+
text,
|
|
269
|
+
fullLine: line
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
return results;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Fix unquoted strings by adding quotes
|
|
278
|
+
*/
|
|
279
|
+
function fixUnquotedStrings(content, issues) {
|
|
280
|
+
const lines = content.split('\n');
|
|
281
|
+
issues.forEach(issue => {
|
|
282
|
+
const lineIndex = issue.line - 1;
|
|
283
|
+
const line = lines[lineIndex];
|
|
284
|
+
// Match the pattern and replace with quoted version
|
|
285
|
+
const match = line.match(/^(\s+)(title|rule):\s+(.+)$/);
|
|
286
|
+
if (match) {
|
|
287
|
+
const indent = match[1];
|
|
288
|
+
const key = match[2];
|
|
289
|
+
const value = match[3].trim();
|
|
290
|
+
// Only quote if not already quoted
|
|
291
|
+
if (!value.startsWith('"') && !value.startsWith("'")) {
|
|
292
|
+
lines[lineIndex] = `${indent}${key}: "${value}"`;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
return lines.join('\n');
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Find duplicate column IDs
|
|
300
|
+
*/
|
|
301
|
+
function findDuplicateColumnIds(board) {
|
|
302
|
+
const columnIds = board.columns?.map((col) => col.id) || [];
|
|
303
|
+
const duplicates = columnIds.filter((id, index) => columnIds.indexOf(id) !== index);
|
|
304
|
+
return Array.from(new Set(duplicates)); // Return unique duplicates
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,QAyE/C"}
|
|
@@ -0,0 +1,136 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.listCommand = listCommand;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const core_1 = require("@brainfile/core");
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
+
function listCommand(options) {
|
|
45
|
+
try {
|
|
46
|
+
// Resolve file path
|
|
47
|
+
const filePath = path.resolve(options.file);
|
|
48
|
+
// Check if file exists
|
|
49
|
+
if (!fs.existsSync(filePath)) {
|
|
50
|
+
console.error(chalk_1.default.red(`Error: File not found: ${filePath}`));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
// Read and parse the file
|
|
54
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
55
|
+
const result = core_1.Brainfile.parseWithErrors(content);
|
|
56
|
+
if (!result.board) {
|
|
57
|
+
console.error(chalk_1.default.red('Error: Failed to parse bangbang.md'));
|
|
58
|
+
if (result.error) {
|
|
59
|
+
console.error(chalk_1.default.red(result.error));
|
|
60
|
+
}
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const board = result.board;
|
|
64
|
+
// Filter columns if specified
|
|
65
|
+
const columns = options.column
|
|
66
|
+
? board.columns.filter(col => col.id === options.column || col.title === options.column)
|
|
67
|
+
: board.columns;
|
|
68
|
+
if (columns.length === 0) {
|
|
69
|
+
console.log(chalk_1.default.yellow(`No columns found matching: ${options.column}`));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Display board title
|
|
73
|
+
console.log(chalk_1.default.bold.white(`\n${board.title || 'Brainfile Board'}\n`));
|
|
74
|
+
// Display each column
|
|
75
|
+
for (const column of columns) {
|
|
76
|
+
// Filter tasks by tag if specified
|
|
77
|
+
const tasks = options.tag
|
|
78
|
+
? column.tasks.filter(task => task.tags?.includes(options.tag))
|
|
79
|
+
: column.tasks;
|
|
80
|
+
if (tasks.length === 0 && options.tag) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// Column header
|
|
84
|
+
console.log(chalk_1.default.bold.cyan(`${column.title} (${tasks.length})`));
|
|
85
|
+
console.log(chalk_1.default.gray('ā'.repeat(50)));
|
|
86
|
+
if (tasks.length === 0) {
|
|
87
|
+
console.log(chalk_1.default.gray(' (no tasks)\n'));
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Display tasks
|
|
91
|
+
for (const task of tasks) {
|
|
92
|
+
displayTask(task);
|
|
93
|
+
}
|
|
94
|
+
console.log('');
|
|
95
|
+
}
|
|
96
|
+
// Display summary
|
|
97
|
+
const totalTasks = board.columns.reduce((sum, col) => sum + col.tasks.length, 0);
|
|
98
|
+
console.log(chalk_1.default.gray(`Total tasks: ${totalTasks}`));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function displayTask(task) {
|
|
106
|
+
// Task ID and title
|
|
107
|
+
const idStr = chalk_1.default.gray(`[${task.id}]`);
|
|
108
|
+
const titleStr = chalk_1.default.white(task.title);
|
|
109
|
+
console.log(` ${idStr} ${titleStr}`);
|
|
110
|
+
// Priority
|
|
111
|
+
if (task.priority) {
|
|
112
|
+
const priorityColor = task.priority === 'high' ? chalk_1.default.red :
|
|
113
|
+
task.priority === 'medium' ? chalk_1.default.yellow :
|
|
114
|
+
chalk_1.default.blue;
|
|
115
|
+
console.log(` ${chalk_1.default.gray('Priority:')} ${priorityColor(task.priority)}`);
|
|
116
|
+
}
|
|
117
|
+
// Tags
|
|
118
|
+
if (task.tags && task.tags.length > 0) {
|
|
119
|
+
const tagStr = task.tags.map(t => chalk_1.default.cyan(`#${t}`)).join(' ');
|
|
120
|
+
console.log(` ${chalk_1.default.gray('Tags:')} ${tagStr}`);
|
|
121
|
+
}
|
|
122
|
+
// Template
|
|
123
|
+
if (task.template) {
|
|
124
|
+
console.log(` ${chalk_1.default.gray('Template:')} ${chalk_1.default.magenta(task.template)}`);
|
|
125
|
+
}
|
|
126
|
+
// Subtasks summary
|
|
127
|
+
if (task.subtasks && task.subtasks.length > 0) {
|
|
128
|
+
const completed = task.subtasks.filter(st => st.completed).length;
|
|
129
|
+
const total = task.subtasks.length;
|
|
130
|
+
const progressStr = `${completed}/${total}`;
|
|
131
|
+
const progressColor = completed === total ? chalk_1.default.green : chalk_1.default.yellow;
|
|
132
|
+
console.log(` ${chalk_1.default.gray('Subtasks:')} ${progressColor(progressStr)}`);
|
|
133
|
+
}
|
|
134
|
+
console.log('');
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move.d.ts","sourceRoot":"","sources":["../../src/commands/move.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,QAyG/C"}
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.moveCommand = moveCommand;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const core_1 = require("@brainfile/core");
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
+
function moveCommand(options) {
|
|
45
|
+
try {
|
|
46
|
+
// Validate required options
|
|
47
|
+
if (!options.task) {
|
|
48
|
+
console.error(chalk_1.default.red('Error: --task is required'));
|
|
49
|
+
console.log(chalk_1.default.gray('Usage: bangbang move --task <task-id> --column <column-name>'));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
if (!options.column) {
|
|
53
|
+
console.error(chalk_1.default.red('Error: --column is required'));
|
|
54
|
+
console.log(chalk_1.default.gray('Usage: bangbang move --task <task-id> --column <column-name>'));
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
// Resolve file path
|
|
58
|
+
const filePath = path.resolve(options.file);
|
|
59
|
+
// Check if file exists
|
|
60
|
+
if (!fs.existsSync(filePath)) {
|
|
61
|
+
console.error(chalk_1.default.red(`Error: File not found: ${filePath}`));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
// Read and parse the file
|
|
65
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
66
|
+
const result = core_1.Brainfile.parseWithErrors(content);
|
|
67
|
+
if (!result.board) {
|
|
68
|
+
console.error(chalk_1.default.red('Error: Failed to parse bangbang.md'));
|
|
69
|
+
if (result.error) {
|
|
70
|
+
console.error(chalk_1.default.red(result.error));
|
|
71
|
+
}
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
const board = result.board;
|
|
75
|
+
// Find the task
|
|
76
|
+
let foundTask = null;
|
|
77
|
+
let sourceColumn = null;
|
|
78
|
+
let sourceColumnIndex = -1;
|
|
79
|
+
for (let i = 0; i < board.columns.length; i++) {
|
|
80
|
+
const column = board.columns[i];
|
|
81
|
+
const taskIndex = column.tasks.findIndex((t) => t.id === options.task);
|
|
82
|
+
if (taskIndex !== -1) {
|
|
83
|
+
foundTask = column.tasks[taskIndex];
|
|
84
|
+
sourceColumn = column;
|
|
85
|
+
sourceColumnIndex = i;
|
|
86
|
+
// Remove task from source column
|
|
87
|
+
board.columns[i].tasks = column.tasks.filter((t) => t.id !== options.task);
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (!foundTask) {
|
|
92
|
+
console.error(chalk_1.default.red(`Error: Task not found: ${options.task}`));
|
|
93
|
+
console.log(chalk_1.default.gray('\nAvailable tasks:'));
|
|
94
|
+
board.columns.forEach((col) => {
|
|
95
|
+
col.tasks.forEach((task) => {
|
|
96
|
+
console.log(chalk_1.default.gray(` - ${task.id}: ${task.title}`));
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
// Find the target column
|
|
102
|
+
const targetColumn = board.columns.find((col) => col.id === options.column || col.title.toLowerCase() === options.column.toLowerCase());
|
|
103
|
+
if (!targetColumn) {
|
|
104
|
+
console.error(chalk_1.default.red(`Error: Column not found: ${options.column}`));
|
|
105
|
+
console.log(chalk_1.default.gray('Available columns:'));
|
|
106
|
+
board.columns.forEach((col) => {
|
|
107
|
+
console.log(chalk_1.default.gray(` - ${col.id} (${col.title})`));
|
|
108
|
+
});
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
// Check if already in target column
|
|
112
|
+
if (sourceColumn.id === targetColumn.id) {
|
|
113
|
+
console.log(chalk_1.default.yellow(`Task ${options.task} is already in column "${targetColumn.title}"`));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Add task to target column
|
|
117
|
+
targetColumn.tasks.push(foundTask);
|
|
118
|
+
// Serialize and write back
|
|
119
|
+
const updatedContent = core_1.Brainfile.serialize(board);
|
|
120
|
+
fs.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
121
|
+
// Success message
|
|
122
|
+
console.log(chalk_1.default.green('ā Task moved successfully!'));
|
|
123
|
+
console.log('');
|
|
124
|
+
console.log(chalk_1.default.gray(` Task: ${foundTask.id} - ${foundTask.title}`));
|
|
125
|
+
console.log(chalk_1.default.gray(` From: ${sourceColumn.title}`));
|
|
126
|
+
console.log(chalk_1.default.gray(` To: ${targetColumn.title}`));
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=move.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move.js","sourceRoot":"","sources":["../../src/commands/move.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface TemplateOptions {
|
|
2
|
+
file: string;
|
|
3
|
+
list?: boolean;
|
|
4
|
+
use?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
column: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function templateCommand(options: TemplateOptions): void;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,QAsJvD"}
|