flamerjs 1.1.3 → 1.1.4

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
@@ -4,6 +4,14 @@ All notable changes to flamer are recorded here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project
5
5
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.1.4] - 2026-10-24
8
+
9
+ ### Added
10
+
11
+ - Added `--verbose` output with the CLI version, repository name, selected
12
+ backend, scan path, file and line counts, duration, and native fallback
13
+ details.
14
+
7
15
  ## [1.1.3] - 2026-10-24
8
16
 
9
17
  ### Fixed
package/README.md CHANGED
@@ -4,11 +4,10 @@
4
4
 
5
5
  [![CI](https://img.shields.io/github/actions/workflow/status/dummy3ye/flamer/ci.yml?branch=master&style=for-the-badge&label=CI&labelColor=101418&color=9ccbfb)](https://github.com/dummy3ye/flamer/actions/workflows/ci.yml)
6
6
  [![Coverage](https://img.shields.io/codecov/c/github/dummy3ye/flamer?style=for-the-badge&label=coverage&labelColor=101418&color=b9c8da)](https://codecov.io/gh/dummy3ye/flamer)
7
- [![npm](https://img.shields.io/npm/v/flamerjs?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://www.npmjs.com/package/flamerjs)<br>
7
+ [![GitHub repo size](https://img.shields.io/github/repo-size/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://github.com/dummy3ye/flamer)<br>
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&labelColor=101418&color=d3bfe6)](LICENSE)
9
9
  [![GitHub last commit](https://img.shields.io/github/last-commit/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=9ccbfb)](https://github.com/dummy3ye/flamer/commits/master)
10
- [![GitHub Repo stars](https://img.shields.io/github/stars/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=b9c8da)](https://github.com/dummy3ye/flamer/stargazers)
11
- [![GitHub repo size](https://img.shields.io/github/repo-size/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://github.com/dummy3ye/flamer)
10
+ [![npm](https://img.shields.io/npm/v/flamerjs?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://www.npmjs.com/package/flamerjs)
12
11
 
13
12
  Flamer scans a repository for the common mistakes that appear when software is
14
13
  assembled quickly with AI or other “vibe coding” workflows: unfinished
@@ -124,6 +123,7 @@ flamerjs [path] [options]
124
123
  | `--no-lockfile-warning` | Suppress the missing-lockfile suggestion |
125
124
  | `--ignore-dir <name>` | Ignore an additional directory name; repeatable |
126
125
  | `--quiet` | Suppress the human summary |
126
+ | `--verbose` | Show CLI version, runtime backend, and scan details |
127
127
  | `--color` | Force ANSI colors |
128
128
  | `--no-color` | Disable ANSI colors |
129
129
  | `--engine <all\|typescript\|rust\|cpp>` | Run all engines (default) or select one engine |
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/cli.ts
4
- import { writeFileSync, existsSync as existsSync4 } from "fs";
4
+ import { writeFileSync, existsSync as existsSync4, readFileSync as readFileSync2 } from "fs";
5
5
  import { resolve, basename } from "path";
6
6
 
7
7
  // src/util/fs.ts
@@ -3003,6 +3003,7 @@ function runNativeWorker(root, files, worker, operation = "file_metrics") {
3003
3003
 
3004
3004
  // src/cli.ts
3005
3005
  var SPEC_VERSION = 1;
3006
+ var CLI_VERSION = JSON.parse(readFileSync2(new URL("../package.json", import.meta.url), "utf8")).version;
3006
3007
  function parseArgs(argv) {
3007
3008
  const opts = {
3008
3009
  root: process.cwd(),
@@ -3014,6 +3015,7 @@ function parseArgs(argv) {
3014
3015
  noGit: false,
3015
3016
  noLockfileWarning: false,
3016
3017
  quiet: false,
3018
+ verbose: false,
3017
3019
  scope: null,
3018
3020
  listLanguages: false,
3019
3021
  help: false,
@@ -3058,6 +3060,9 @@ function parseArgs(argv) {
3058
3060
  case "--quiet":
3059
3061
  opts.quiet = true;
3060
3062
  break;
3063
+ case "--verbose":
3064
+ opts.verbose = true;
3065
+ break;
3061
3066
  case "--color":
3062
3067
  opts.color = true;
3063
3068
  break;
@@ -3111,6 +3116,7 @@ Options:
3111
3116
  --no-lockfile-warning skip the "no lockfile" suggestion
3112
3117
  --ignore-dir <name> also skip this directory name (repeatable)
3113
3118
  --quiet suppress the human summary
3119
+ --verbose show runtime engine and scan details
3114
3120
  --color force ANSI colors
3115
3121
  --no-color disable ANSI colors
3116
3122
  --engine <all|typescript|rust|cpp>
@@ -3379,13 +3385,50 @@ function severityColor(severity) {
3379
3385
  function severityIcon(severity) {
3380
3386
  return severity === "LOW" ? "\xB7" : severity === "INFO" ? "i" : "!";
3381
3387
  }
3382
- function printSummary(report, forceColor) {
3388
+ function printVerbose(report, forceColor) {
3389
+ const enabled = colorEnabled(forceColor);
3390
+ const native = report.metadata.native;
3391
+ let backend = "typescript";
3392
+ let backendDetail = "TypeScript analyzers";
3393
+ if (native?.fallback) {
3394
+ backendDetail = "TypeScript fallback";
3395
+ } else if (native?.engine === "all") {
3396
+ backend = "rust + cpp";
3397
+ backendDetail = "Rust and C++ workers";
3398
+ } else if (native?.engine === "rust") {
3399
+ backend = "rust";
3400
+ backendDetail = "Rust worker";
3401
+ } else if (native?.engine === "cpp") {
3402
+ backend = "cpp";
3403
+ backendDetail = "C++ worker";
3404
+ }
3405
+ const p = report.project;
3406
+ const lines = [
3407
+ "",
3408
+ ` ${paint(`flamer.js v${CLI_VERSION}`, ANSI.bold + ANSI.cyan, enabled)} ${paint(p.name, ANSI.bold, enabled)}`,
3409
+ ` ${paint("cli", ANSI.dim, enabled)} : typescript`,
3410
+ ` ${paint("backend", ANSI.dim, enabled)} : ${backend}`,
3411
+ ` ${paint("details", ANSI.dim, enabled)} : ${backendDetail}`,
3412
+ ` ${paint("path", ANSI.dim, enabled)} : ${p.root || p.name}`,
3413
+ ` ${paint("files", ANSI.dim, enabled)} : ${(p.totalFiles || 0).toLocaleString()}`,
3414
+ ` ${paint("lines", ANSI.dim, enabled)} : ${(p.totalLines || 0).toLocaleString()}`,
3415
+ ` ${paint("duration", ANSI.dim, enabled)} : ${report.metadata.durationSeconds.toFixed(2)}s`
3416
+ ];
3417
+ if (native?.fallback) {
3418
+ lines.push(
3419
+ ` ${paint("fallback", ANSI.dim, enabled)} : ${[...new Set(native.fallback)].join("; ")}`
3420
+ );
3421
+ }
3422
+ process.stdout.write(lines.join("\n") + "\n");
3423
+ }
3424
+ function printSummary(report, forceColor, verbose = false) {
3383
3425
  const enabled = colorEnabled(forceColor);
3384
3426
  const p = report.project;
3385
3427
  const out = [];
3386
3428
  const width = 62;
3387
3429
  const duration = report.metadata.durationSeconds;
3388
3430
  out.push("");
3431
+ if (verbose) printVerbose(report, forceColor);
3389
3432
  out.push(
3390
3433
  ` ${paint("FLAMER", ANSI.bold + ANSI.cyan, enabled)} ${paint(p.name, ANSI.bold, enabled)}`
3391
3434
  );
@@ -3458,7 +3501,7 @@ async function main() {
3458
3501
  }
3459
3502
  }
3460
3503
  if (opts.format === "summary") {
3461
- if (!opts.quiet) printSummary(report, opts.color);
3504
+ if (!opts.quiet) printSummary(report, opts.color, opts.verbose);
3462
3505
  } else {
3463
3506
  process.stdout.write(json + "\n");
3464
3507
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flamerjs",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "Language-agnostic code health auditor that walks a repository once and reports what is wrong with it",
5
5
  "license": "MIT",
6
6
  "type": "module",