@brainfile/cli 0.1.0 → 0.2.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 +15 -9
- package/README.md +88 -27
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +21 -204
- package/dist/commands/lint.js.map +1 -1
- package/logo.png +0 -0
- package/package.json +4 -6
package/CHANGELOG.md
CHANGED
|
@@ -8,14 +8,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
|
-
- Initial CLI implementation
|
|
12
|
-
- `brainfile template` command
|
|
13
|
-
- `brainfile add` command
|
|
14
|
-
- `brainfile move` command
|
|
15
|
-
- `brainfile list` command
|
|
16
|
-
- `brainfile lint` command
|
|
17
|
-
- Colored terminal output
|
|
18
|
-
- Full test coverage
|
|
19
11
|
|
|
20
12
|
### Changed
|
|
21
13
|
|
|
@@ -27,7 +19,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
27
19
|
|
|
28
20
|
### Security
|
|
29
21
|
|
|
30
|
-
## [0.
|
|
22
|
+
## [0.2.0] - 2025-11-20
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- Dynamic version reading from package.json for `brainfile -V`
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- **Refactored lint command** to use `BrainfileLinter` from @brainfile/core
|
|
29
|
+
- Upgraded to @brainfile/core@^0.3.0 with integrated linter
|
|
30
|
+
- Removed ~200 lines of duplicate linting logic
|
|
31
|
+
- Simplified lint command implementation
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Version command now correctly displays current version from package.json
|
|
35
|
+
|
|
36
|
+
## [0.1.0] - 2024-12-01
|
|
31
37
|
|
|
32
38
|
### Added
|
|
33
39
|
- Initial public release
|
package/README.md
CHANGED
|
@@ -1,22 +1,75 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/brainfile/cli/main/logo.png" alt="Brainfile Logo" width="128" height="128">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# @brainfile/cli
|
|
2
6
|
|
|
3
7
|
Command-line interface for Brainfile task management. Manage your tasks from the terminal with ease.
|
|
4
8
|
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
11
|
+
### Install Globally (Recommended)
|
|
12
|
+
|
|
13
|
+
Install the CLI globally to use the `brainfile` command anywhere:
|
|
14
|
+
|
|
7
15
|
```bash
|
|
8
16
|
npm install -g @brainfile/cli
|
|
9
17
|
```
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
After installation, verify it works:
|
|
12
20
|
|
|
13
21
|
```bash
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
npm run build
|
|
17
|
-
node dist/cli.js --help
|
|
22
|
+
brainfile --version
|
|
23
|
+
brainfile --help
|
|
18
24
|
```
|
|
19
25
|
|
|
26
|
+
### Install as Project Dependency
|
|
27
|
+
|
|
28
|
+
For project-specific usage:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install --save-dev @brainfile/cli
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Then use via npm scripts or npx:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx brainfile list
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Using npx (No Installation)
|
|
41
|
+
|
|
42
|
+
Run commands without installing:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx @brainfile/cli list
|
|
46
|
+
npx @brainfile/cli add --title "New task"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Quick Start
|
|
50
|
+
|
|
51
|
+
1. **Install the CLI:**
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g @brainfile/cli
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. **Create a brainfile.md** in your project (or use an existing one)
|
|
57
|
+
|
|
58
|
+
3. **List your tasks:**
|
|
59
|
+
```bash
|
|
60
|
+
brainfile list
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
4. **Add a new task:**
|
|
64
|
+
```bash
|
|
65
|
+
brainfile add --title "My first task" --priority high
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
5. **Move a task:**
|
|
69
|
+
```bash
|
|
70
|
+
brainfile move --task task-123 --column done
|
|
71
|
+
```
|
|
72
|
+
|
|
20
73
|
## Usage
|
|
21
74
|
|
|
22
75
|
### List Tasks
|
|
@@ -235,41 +288,49 @@ Task IDs are automatically generated with a timestamp and random string to ensur
|
|
|
235
288
|
- Task completion tracking
|
|
236
289
|
- Subtask management
|
|
237
290
|
|
|
238
|
-
##
|
|
291
|
+
## Package Information
|
|
239
292
|
|
|
240
|
-
|
|
293
|
+
- **Package**: `@brainfile/cli`
|
|
294
|
+
- **npm**: https://www.npmjs.com/package/@brainfile/cli
|
|
295
|
+
- **Repository**: https://github.com/brainfile/cli
|
|
296
|
+
- **Core Library**: Built on [@brainfile/core](https://www.npmjs.com/package/@brainfile/core)
|
|
241
297
|
|
|
242
|
-
|
|
298
|
+
## Development
|
|
299
|
+
|
|
300
|
+
### Setup
|
|
243
301
|
|
|
244
302
|
```bash
|
|
245
|
-
#
|
|
246
|
-
|
|
303
|
+
# Clone the repository
|
|
304
|
+
git clone https://github.com/brainfile/cli.git
|
|
305
|
+
cd cli
|
|
247
306
|
|
|
248
|
-
#
|
|
249
|
-
|
|
250
|
-
make cli ARGS="add --title 'New task' --priority high"
|
|
251
|
-
make cli ARGS="--help"
|
|
307
|
+
# Install dependencies
|
|
308
|
+
npm install
|
|
252
309
|
|
|
253
|
-
#
|
|
254
|
-
|
|
310
|
+
# Build
|
|
311
|
+
npm run build
|
|
255
312
|
|
|
256
|
-
#
|
|
257
|
-
|
|
258
|
-
```
|
|
313
|
+
# Run tests
|
|
314
|
+
npm test
|
|
259
315
|
|
|
260
|
-
|
|
316
|
+
# Watch mode for development
|
|
317
|
+
npm run dev
|
|
318
|
+
```
|
|
261
319
|
|
|
262
|
-
|
|
320
|
+
### Testing Locally
|
|
263
321
|
|
|
264
322
|
```bash
|
|
265
|
-
#
|
|
266
|
-
npm install
|
|
267
|
-
|
|
268
|
-
# Build
|
|
323
|
+
# Build the CLI
|
|
269
324
|
npm run build
|
|
270
325
|
|
|
271
|
-
#
|
|
272
|
-
npm
|
|
326
|
+
# Link globally for local testing
|
|
327
|
+
npm link
|
|
328
|
+
|
|
329
|
+
# Now you can use it anywhere
|
|
330
|
+
brainfile --help
|
|
331
|
+
|
|
332
|
+
# Unlink when done
|
|
333
|
+
npm unlink -g @brainfile/cli
|
|
273
334
|
```
|
|
274
335
|
|
|
275
336
|
## License
|
package/dist/cli.js
CHANGED
|
@@ -2,16 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
5
7
|
const list_1 = require("./commands/list");
|
|
6
8
|
const add_1 = require("./commands/add");
|
|
7
9
|
const move_1 = require("./commands/move");
|
|
8
10
|
const template_1 = require("./commands/template");
|
|
9
11
|
const lint_1 = require("./commands/lint");
|
|
12
|
+
// Read version from package.json
|
|
13
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
|
|
10
14
|
const program = new commander_1.Command();
|
|
11
15
|
program
|
|
12
16
|
.name('brainfile')
|
|
13
17
|
.description('Command-line interface for Brainfile task management')
|
|
14
|
-
.version(
|
|
18
|
+
.version(packageJson.version);
|
|
15
19
|
// Register commands
|
|
16
20
|
program
|
|
17
21
|
.command('list')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,wCAA4C;AAC5C,0CAA8C;AAC9C,kDAAsD;AACtD,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAC5B,0CAA8C;AAC9C,wCAA4C;AAC5C,0CAA8C;AAC9C,kDAAsD;AACtD,0CAA8C;AAE9C,iCAAiC;AACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC5D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,cAAc,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,cAAc,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,CAAC;KAC9D,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;KACrD,MAAM,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;KACtD,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KACtE,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,cAAc,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;KACpE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,cAAc,CAAC;KACxE,MAAM,CAAC,YAAY,EAAE,8BAA8B,CAAC;KACpD,MAAM,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;KAC9D,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;KAC3D,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,CAAC;KAC9D,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,cAAc,CAAC;KACxE,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,kDAAkD,CAAC;KACrE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,QA2F/C"}
|
package/dist/commands/lint.js
CHANGED
|
@@ -41,7 +41,6 @@ const fs = __importStar(require("fs"));
|
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
42
|
const core_1 = require("@brainfile/core");
|
|
43
43
|
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
-
const yaml = __importStar(require("js-yaml"));
|
|
45
44
|
function lintCommand(options) {
|
|
46
45
|
try {
|
|
47
46
|
// Resolve file path
|
|
@@ -53,83 +52,17 @@ function lintCommand(options) {
|
|
|
53
52
|
}
|
|
54
53
|
// Read file content
|
|
55
54
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
56
|
-
const issues = [];
|
|
57
|
-
let fixedContent = content;
|
|
58
55
|
console.log(chalk_1.default.blue(`\n🔍 Linting: ${filePath}\n`));
|
|
59
|
-
//
|
|
60
|
-
const
|
|
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
|
-
}
|
|
56
|
+
// Run linter from core
|
|
57
|
+
const result = core_1.BrainfileLinter.lint(content, { autoFix: options.fix });
|
|
124
58
|
// Report findings
|
|
125
|
-
if (issues.length === 0) {
|
|
59
|
+
if (result.issues.length === 0) {
|
|
126
60
|
console.log(chalk_1.default.green('✓ No issues found! Your brainfile.md is valid.\n'));
|
|
127
61
|
return; // Success - don't exit, just return
|
|
128
62
|
}
|
|
129
63
|
// Group issues by type
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
const fixableCount = issues.filter(i => i.fixable).length;
|
|
64
|
+
const grouped = core_1.BrainfileLinter.groupIssues(result);
|
|
65
|
+
const { errors, warnings, fixable } = grouped;
|
|
133
66
|
// Display errors
|
|
134
67
|
if (errors.length > 0) {
|
|
135
68
|
console.log(chalk_1.default.red.bold(`✗ ${errors.length} Error${errors.length > 1 ? 's' : ''}:`));
|
|
@@ -144,47 +77,40 @@ function lintCommand(options) {
|
|
|
144
77
|
console.log(chalk_1.default.yellow.bold(`⚠ ${warnings.length} Warning${warnings.length > 1 ? 's' : ''}:`));
|
|
145
78
|
warnings.forEach(issue => {
|
|
146
79
|
const location = issue.line ? chalk_1.default.gray(` [line ${issue.line}]`) : '';
|
|
147
|
-
const
|
|
148
|
-
console.log(chalk_1.default.yellow(` • ${issue.message}${location}${
|
|
80
|
+
const fixableTag = issue.fixable ? chalk_1.default.gray(' [fixable]') : '';
|
|
81
|
+
console.log(chalk_1.default.yellow(` • ${issue.message}${location}${fixableTag}`));
|
|
149
82
|
});
|
|
150
83
|
console.log();
|
|
151
84
|
}
|
|
152
|
-
// Apply fixes if requested
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const remainingIssues = issues.filter(i => !i.fixable);
|
|
160
|
-
remainingErrors = remainingIssues.filter(i => i.type === 'error');
|
|
161
|
-
remainingWarnings = remainingIssues.filter(i => i.type === 'warning');
|
|
85
|
+
// Apply fixes if requested and content was fixed
|
|
86
|
+
if (options.fix && result.fixedContent) {
|
|
87
|
+
fs.writeFileSync(filePath, result.fixedContent, 'utf-8');
|
|
88
|
+
console.log(chalk_1.default.green(`✓ Fixed ${fixable.length} issue${fixable.length > 1 ? 's' : ''}!\n`));
|
|
89
|
+
// Recheck after fixes
|
|
90
|
+
const recheckResult = core_1.BrainfileLinter.lint(result.fixedContent, { autoFix: false });
|
|
91
|
+
const remainingIssues = recheckResult.issues;
|
|
162
92
|
if (remainingIssues.length > 0) {
|
|
163
93
|
console.log(chalk_1.default.yellow(`⚠ ${remainingIssues.length} issue${remainingIssues.length > 1 ? 's' : ''} remaining (not auto-fixable)\n`));
|
|
164
94
|
}
|
|
165
95
|
}
|
|
166
|
-
else if (
|
|
167
|
-
console.log(chalk_1.default.gray(`💡 Run with --fix to automatically fix ${
|
|
96
|
+
else if (fixable.length > 0 && !options.fix) {
|
|
97
|
+
console.log(chalk_1.default.gray(`💡 Run with --fix to automatically fix ${fixable.length} issue${fixable.length > 1 ? 's' : ''}\n`));
|
|
168
98
|
}
|
|
169
99
|
// Summary
|
|
170
|
-
const displayIssues = options.fix ? (remainingErrors.length + remainingWarnings.length) : (errors.length + warnings.length);
|
|
171
100
|
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
172
|
-
console.log(chalk_1.default.gray(`Total: ${
|
|
173
|
-
if (
|
|
174
|
-
console.log(chalk_1.default.gray(` ${
|
|
101
|
+
console.log(chalk_1.default.gray(`Total: ${result.issues.length} issue${result.issues.length > 1 ? 's' : ''} found`));
|
|
102
|
+
if (fixable.length > 0 && !options.fix) {
|
|
103
|
+
console.log(chalk_1.default.gray(` ${fixable.length} fixable with --fix`));
|
|
175
104
|
}
|
|
176
105
|
console.log();
|
|
177
106
|
// Exit with error code in check mode
|
|
178
107
|
if (options.check) {
|
|
179
|
-
|
|
180
|
-
const checkWarnings = options.fix ? remainingWarnings : warnings;
|
|
181
|
-
if (checkErrors.length > 0 || checkWarnings.length > 0) {
|
|
108
|
+
if (errors.length > 0 || warnings.length > 0) {
|
|
182
109
|
process.exit(1);
|
|
183
110
|
}
|
|
184
111
|
}
|
|
185
112
|
// Normal mode: only exit 1 on errors (not warnings)
|
|
186
|
-
|
|
187
|
-
if (finalErrors.length > 0) {
|
|
113
|
+
if (errors.length > 0) {
|
|
188
114
|
process.exit(1);
|
|
189
115
|
}
|
|
190
116
|
// Success - don't exit, just return
|
|
@@ -194,113 +120,4 @@ function lintCommand(options) {
|
|
|
194
120
|
process.exit(1);
|
|
195
121
|
}
|
|
196
122
|
}
|
|
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
123
|
//# sourceMappingURL=lint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
|
package/logo.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainfile/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Command-line interface for Brainfile task management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
"test:watch": "jest --watch",
|
|
16
16
|
"test:coverage": "jest --coverage",
|
|
17
17
|
"prepublishOnly": "npm run build",
|
|
18
|
-
"prepack": "npm run build"
|
|
19
|
-
"version": "npm run build && git add -A dist"
|
|
18
|
+
"prepack": "npm run build"
|
|
20
19
|
},
|
|
21
20
|
"keywords": [
|
|
22
21
|
"brainfile",
|
|
@@ -28,14 +27,13 @@
|
|
|
28
27
|
"license": "MIT",
|
|
29
28
|
"repository": {
|
|
30
29
|
"type": "git",
|
|
31
|
-
"url": "https://github.com/brainfile/
|
|
32
|
-
"directory": "cli"
|
|
30
|
+
"url": "https://github.com/brainfile/cli"
|
|
33
31
|
},
|
|
34
32
|
"publishConfig": {
|
|
35
33
|
"access": "public"
|
|
36
34
|
},
|
|
37
35
|
"dependencies": {
|
|
38
|
-
"@brainfile/core": "^0.
|
|
36
|
+
"@brainfile/core": "^0.3.0",
|
|
39
37
|
"chalk": "^4.1.2",
|
|
40
38
|
"commander": "^12.1.0",
|
|
41
39
|
"js-yaml": "^4.1.0"
|