@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 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.1.0] - TBD
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
- Or use directly from the repo:
19
+ After installation, verify it works:
12
20
 
13
21
  ```bash
14
- cd packages/brainfile-cli
15
- npm install
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
- ## Development
291
+ ## Package Information
239
292
 
240
- ### Using Make (Recommended)
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
- From the project root:
298
+ ## Development
299
+
300
+ ### Setup
243
301
 
244
302
  ```bash
245
- # Build the CLI (includes core library)
246
- make build-cli
303
+ # Clone the repository
304
+ git clone https://github.com/brainfile/cli.git
305
+ cd cli
247
306
 
248
- # Run the CLI with automatic build (fast dev shortcut)
249
- make cli ARGS="list --file brainfile.md"
250
- make cli ARGS="add --title 'New task' --priority high"
251
- make cli ARGS="--help"
307
+ # Install dependencies
308
+ npm install
252
309
 
253
- # Create standalone binaries for distribution
254
- make build-cli-bin
310
+ # Build
311
+ npm run build
255
312
 
256
- # Clean all build artifacts
257
- make clean
258
- ```
313
+ # Run tests
314
+ npm test
259
315
 
260
- ### Using npm directly
316
+ # Watch mode for development
317
+ npm run dev
318
+ ```
261
319
 
262
- From the `packages/brainfile-cli` directory:
320
+ ### Testing Locally
263
321
 
264
322
  ```bash
265
- # Install dependencies
266
- npm install
267
-
268
- # Build
323
+ # Build the CLI
269
324
  npm run build
270
325
 
271
- # Watch mode
272
- npm run dev
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('0.1.0');
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;AAEpB,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
+ {"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":"AAMA,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,QAyK/C"}
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"}
@@ -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
- // 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
- }
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 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;
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 fixable = issue.fixable ? chalk_1.default.gray(' [fixable]') : '';
148
- console.log(chalk_1.default.yellow(` • ${issue.message}${location}${fixable}`));
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
- 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');
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 (fixableCount > 0 && !options.fix) {
167
- console.log(chalk_1.default.gray(`💡 Run with --fix to automatically fix ${fixableCount} issue${fixableCount > 1 ? 's' : ''}\n`));
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: ${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`));
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
- const checkErrors = options.fix ? remainingErrors : errors;
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
- const finalErrors = options.fix ? remainingErrors : errors;
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.1.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/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.1.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"