# `NPM.Package.Files`
[🔗](https://github.com/elixir-volt/npm_ex/blob/v0.7.4/lib/npm/package/files.ex#L1)

Analyzes which files would be included when publishing a package.

Uses the `files` field from package.json, default inclusions,
and .npmignore rules.

# `always_excluded?`

```elixir
@spec always_excluded?(String.t()) :: boolean()
```

Checks if a file is always excluded.

# `always_included?`

```elixir
@spec always_included?(String.t()) :: boolean()
```

Checks if a file is always included regardless of `files` field.

# `default_includes`

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

Returns the list of always-included file patterns.

# `entry_points`

```elixir
@spec entry_points(map()) :: [String.t()]
```

Lists all entry points (main, module, browser, types, exports).

# `has_whitelist?`

```elixir
@spec has_whitelist?(map()) :: boolean()
```

Checks if package.json has a files whitelist.

# `main_entry`

```elixir
@spec main_entry(map()) :: String.t()
```

Returns the main entry point.

# `whitelist`

```elixir
@spec whitelist(map()) :: [String.t()] | nil
```

Returns the files whitelist from package.json.

---

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