# `NPM.Diagnostics.EngineCheck`
[🔗](https://github.com/elixir-volt/npm_ex/blob/v0.7.4/lib/npm/diagnostics/engine_check.ex#L1)

Checks engine compatibility across all installed packages.

Validates that the current Node.js version (if installed) satisfies
engine requirements declared by packages in node_modules.

# `engine_issue`

```elixir
@type engine_issue() :: %{
  package: String.t(),
  engine: String.t(),
  required: String.t(),
  actual: String.t() | nil,
  satisfied: boolean()
}
```

# `check_all`

```elixir
@spec check_all(String.t()) :: [engine_issue()]
```

Scans node_modules for engine requirements and checks compatibility.

# `check_package`

```elixir
@spec check_package(map(), String.t() | nil) :: [engine_issue()]
```

Checks a single package's engines against current versions.

# `format_issues`

```elixir
@spec format_issues([engine_issue()]) :: String.t()
```

Formats engine issues for display.

# `unsatisfied`

```elixir
@spec unsatisfied([engine_issue()]) :: [engine_issue()]
```

Returns only unsatisfied engine requirements.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
