diff --git a/.claude/settings.local.json b/.claude/settings.local.json index c2912d0..4aa0407 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -148,7 +148,14 @@ "Bash(pnpm --filter @ngcompass/planner build)", "Bash(npm list *)", "WebFetch(domain:ngcompass.dev)", - "PowerShell(& \"C:\\\\Users\\\\30694\\\\Desktop\\\\ngcompass_\\\\scripts\\\\benchmark-ngcompass.ps1\" 2>&1)" + "PowerShell(& \"C:\\\\Users\\\\30694\\\\Desktop\\\\ngcompass_\\\\scripts\\\\benchmark-ngcompass.ps1\" 2>&1)", + "Bash(npm ls *)", + "Bash(Remove-Item -Recurse -Force \"C:\\\\Users\\\\30694\\\\AppData\\\\Local\\\\pnpm\\\\global\\\\5\\\\node_modules\\\\@ngcompass\" -ErrorAction SilentlyContinue)", + "Bash(ngcompass --version)", + "Bash(cat \"C:\\\\Users\\\\30694\\\\AppData\\\\Local\\\\pnpm\\\\global\\\\5\\\\node_modules\\\\@ngcompass\\\\cli\\\\package.json\" 2>&1 | head -5)", + "Bash(ls \"C:\\\\Users\\\\30694\\\\AppData\\\\Local\\\\pnpm\\\\global\\\\5\\\\node_modules\\\\@ngcompass\\\\\" 2>&1)", + "Bash(git add *)", + "Bash(git commit -m ' *)" ] } } diff --git a/README.md b/README.md index 43959d8..40f40be 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

Static analysis for Angular — catch architecture problems, performance issues, and code quality violations before they reach production.

- npm beta + npm beta Angular v15+ Node.js 20+ MIT License @@ -32,10 +32,10 @@ Think of it as **ESLint — but Angular-aware**. It understands the relationship ```bash # npm -npm install -g @ngcompass/cli@beta +npm install -g ngcompass@beta # pnpm -pnpm add -g @ngcompass/cli@beta +pnpm add -g ngcompass@beta ``` > This is a **beta release**. Install with `@beta` to opt in. @@ -261,11 +261,11 @@ ngcompass analyze --force # skip cache for this run ## Packages -ngcompass is a monorepo. All packages are published under the `@ngcompass` scope: +ngcompass is a monorepo. The CLI is published as `ngcompass`; internal libraries use the `@ngcompass` scope: | Package | Description | |---|---| -| [`@ngcompass/cli`](packages/cli) | The CLI tool — this is what you install | +| [`ngcompass`](packages/cli) | The CLI tool — this is what you install | | [`@ngcompass/engine`](packages/engine) | Rule execution engine | | [`@ngcompass/rules`](packages/rules) | Built-in rule collection | | [`@ngcompass/ast`](packages/ast) | AST parsers and visitors | diff --git a/docs/architecture.md b/docs/architecture.md index f541de1..d72f96a 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -22,7 +22,7 @@ ngcompass follows these core design principles: ```mermaid flowchart TB - CLI["@ngcompass/cli
Command parsing and run orchestration"] + CLI["ngcompass
Command parsing and run orchestration"] CONFIG["@ngcompass/config
Config discovery, loading, validation, profiles, plugins"] SCANNER["@ngcompass/scanner
Git/glob file discovery and filtering"] RULES["@ngcompass/rules
Built-in rules, presets, registry, resolution"] @@ -62,7 +62,7 @@ flowchart TB | Package | Primary Responsibility | Key Artifacts | |---|---|---| -| `@ngcompass/cli` | User-facing command line orchestration | `ngcompass analyze`, `init`, `config`, `cache`, `rules` | +| `ngcompass` | User-facing command line orchestration | `ngcompass analyze`, `init`, `config`, `cache`, `rules` | | `@ngcompass/config` | Discover, load, normalize, validate, and profile configuration | `resolveConfig`, config health checks, plugin loader | | `@ngcompass/scanner` | Discover source files from Git or glob patterns | `scan`, git discovery, filters, stats | | `@ngcompass/rules` | Built-in rules, presets, rule registry, rule resolution | `registerAllBuiltinRules`, `resolveRules`, presets | @@ -75,7 +75,7 @@ flowchart TB ## 4. End-to-End Analysis Lifecycle -The `analyze` command is the primary workflow. It starts in `@ngcompass/cli`, then delegates to each subsystem in a strict sequence. +The `analyze` command is the primary workflow. It starts in `ngcompass` (CLI), then delegates to each subsystem in a strict sequence. ```mermaid sequenceDiagram diff --git a/package.json b/package.json index 9995ff5..9fec349 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ngcompass", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "private": true, "description": "Angular static analysis tool for architecture, performance, SSR, and code quality", diff --git a/packages/ast/package.json b/packages/ast/package.json index 19cdfcb..7e50175 100644 --- a/packages/ast/package.json +++ b/packages/ast/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/ast", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "AST types, parsers, analyzers and visitor for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/cache/package.json b/packages/cache/package.json index bd81ad1..c8bcfe9 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/cache", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Caching layer for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore new file mode 100644 index 0000000..695027b --- /dev/null +++ b/packages/cli/.gitignore @@ -0,0 +1,2 @@ +# Copied from root during prepack — not a source file +README.md diff --git a/packages/cli/README.md b/packages/cli/README.md index 2613692..0ed671c 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -1,13 +1,13 @@ -# @ngcompass/cli +# ngcompass Command line interface for [ngcompass](../../README.md) - Angular static analysis tool. ## Installation ```bash -npm install -g @ngcompass/cli +npm install -g ngcompass # or -pnpm add -g @ngcompass/cli +pnpm add -g ngcompass ``` ## Usage diff --git a/packages/cli/package.json b/packages/cli/package.json index e3cc0ed..558687e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { - "name": "@ngcompass/cli", - "version": "0.1.0-beta", + "name": "ngcompass", + "version": "0.1.1-beta", "description": "Command line interface for ngcompass", "sideEffects": false, "bin": { @@ -21,9 +21,11 @@ } }, "files": [ - "dist" + "dist", + "README.md" ], "scripts": { + "prepack": "node -e \"require('fs').copyFileSync('../../README.md','./README.md')\"", "build": "tsup", "build:prod": "tsup --minify", "dev": "tsup --watch", diff --git a/packages/common/package.json b/packages/common/package.json index 9d77dc9..d345b5a 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/common", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Common types and utilities for Angular Analyzer", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/common/src/constants.ts b/packages/common/src/constants.ts index 41198da..afeef69 100644 --- a/packages/common/src/constants.ts +++ b/packages/common/src/constants.ts @@ -3,7 +3,7 @@ */ export const TOOL_NAME = 'ngcompass'; -export const PACKAGE_VERSION = 'v.0.1.0-beta'; +export const PACKAGE_VERSION = 'v.0.1.1-beta'; export const CACHE_VERSION = '1.0.0'; export const CONFIG_FILE_NAMES = [ `.${TOOL_NAME}rc.json`, diff --git a/packages/config/package.json b/packages/config/package.json index 522e771..7d55ac2 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/config", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Config loading, resolution and validation for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/engine/package.json b/packages/engine/package.json index ad3191a..bf5c6de 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/engine", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Rule execution engine for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/planner/package.json b/packages/planner/package.json index 8a3721d..2ff8fb7 100644 --- a/packages/planner/package.json +++ b/packages/planner/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/planner", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Execution planning and incremental analysis for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/reporters/package.json b/packages/reporters/package.json index 56691f2..dd6d5c5 100644 --- a/packages/reporters/package.json +++ b/packages/reporters/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/reporters", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Reporters for ngcompass analysis results", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/rules/package.json b/packages/rules/package.json index a5dd2ef..9506b54 100644 --- a/packages/rules/package.json +++ b/packages/rules/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/rules", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "Rules collection for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/packages/scanner/package.json b/packages/scanner/package.json index a1f0a18..be6325e 100644 --- a/packages/scanner/package.json +++ b/packages/scanner/package.json @@ -1,6 +1,6 @@ { "name": "@ngcompass/scanner", - "version": "0.1.0-beta", + "version": "0.1.1-beta", "description": "File system scanning (glob, git, gitignore) for ngcompass", "sideEffects": false, "main": "./dist/index.cjs", diff --git a/scripts/smoke-test.mjs b/scripts/smoke-test.mjs index fbf405e..f5a174b 100644 --- a/scripts/smoke-test.mjs +++ b/scripts/smoke-test.mjs @@ -11,7 +11,7 @@ * node scripts/smoke-test.mjs * * Requires the CLI to be built first: - * pnpm build (or: pnpm --filter @ngcompass/cli build) + * pnpm build (or: pnpm --filter ngcompass build) */ import { spawn } from 'node:child_process';