npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@prata.ma/anvil-commit

v0.2.8

Published

Shared commitlint configuration for Anvil-governed workspaces.

Readme

@prata.ma/anvil-commit

Shared commitlint configuration for Anvil-governed workspaces.

Overview

@prata.ma/anvil-commit owns the reusable commitlint setup used across this workspace. It combines the conventional commitlint base config with Anvil- or vault-derived commit types and scopes, and it exposes helpers for loading that config from a repo root.

Within the monorepo and for external consumers, this package is the supported boundary for commit-message rules and prompt metadata. Consumers should import @prata.ma/anvil-commit rather than rebuilding commitlint behavior from anvil.yaml, vault.yaml, or workspace manifests directly.

Installation

Install the package from npm when using the shared commitlint surface outside this monorepo.

npm

{
  "dependencies": {
    "@prata.ma/anvil-commit": "^0.0.0"
  }
}

Usage

The main usage path is to re-export the package default from a repo-level commitlint.config.ts. Library consumers can also call the exported helpers directly when they need to inspect or assemble commit config programmatically.

Library

import config, {
  createCommitlintConfig,
  resolveCommitScopes,
  resolveCommitTypes,
} from '@prata.ma/anvil-commit'

export default config

const custom = createCommitlintConfig({ cwd: process.cwd() })
const scopes = await resolveCommitScopes(process.cwd())
const types = resolveCommitTypes(process.cwd())

Patterns

Use the package from the workspace root so scope resolution can read pnpm-workspace.yaml, anvil.yaml, or the legacy vault.yaml fallback correctly.

External consumers can re-export the package directly from a repo-level commitlint.config.ts. This repo keeps a local-source import in its own root config so fresh GitHub runners do not need the package to be built before commit hooks run.

import config from '@prata.ma/anvil-commit'

export default config

API

@prata.ma/anvil-commit exposes one documented import path and a small set of helpers for building commitlint config from observable workspace files.

Exports

  • @prata.ma/anvil-commit - default commitlint config plus exported helper functions and types
  • createCommitlintConfig(options) - builds a commitlint UserConfig for a target working directory
  • resolveCommitTypes(cwd) - merges built-in commit types with manifest-defined additions
  • resolveCommitScopes(cwd) - resolves scopes from the root package name, workspace package names, manifest-defined scopes, and *
  • loadCommitConfig(cwd) - loads commit config from anvil.yaml, then vault.yaml, or returns an empty result
  • loadVaultConfig(cwd) - reads legacy vault.yaml commit config directly
  • resolveWorkspaceProjectNames(cwd) - resolves workspace project names from pnpm-workspace.yaml or root-package fallback
  • Exported types: CommitConfigLoadResult, CommitType, CreateCommitlintConfigOptions, PromptTypeOption, and VaultConfig

Configuration

  • anvil.yaml is the preferred config source when present.
  • vault.yaml remains the fallback for older vault-style repos.
  • the root package.json name contributes the repo-root scope when present.
  • pnpm-workspace.yaml package patterns drive workspace package scope discovery when available.
  • Built-in commit types from src/defaults.ts are always present unless a consumer post-processes the returned config itself.

Development

Use the package-local scripts while working in @packages/anvil-commit, and keep commitlint behavior in importable functions rather than burying it inside repo-local config files.

This package now participates in the repo's Changesets, npm publish, and GitHub Release automation as a package-scoped public surface. The package-local release:check script remains the focused validation contract for this package.

Commands

pnpm --filter @prata.ma/anvil-commit release:check
pnpm --filter @prata.ma/anvil-commit build
pnpm --filter @prata.ma/anvil-commit lint
pnpm --filter @prata.ma/anvil-commit test
pnpm --filter @prata.ma/anvil-commit test:type

Testing

The Vitest coverage focuses on manifest loading, anvil.yaml versus vault.yaml precedence, workspace package-name discovery, and dynamic scope generation.

Conventions

  • Keep the default export aligned with createCommitlintConfig() so the package remains usable as a drop-in commitlint.config.ts source.
  • Treat anvil.yaml as the primary config surface and preserve vault.yaml support only as an explicit compatibility fallback.
  • Keep workspace-scope discovery deterministic because it feeds commitlint validation and prompt choices.

Status

This package is active and supports the workspace's shared commit configuration boundary.

Maturity

@prata.ma/anvil-commit is active and publish-prepared as a reusable package.

Scope

The package currently supports commitlint config generation, manifest-backed type and scope loading, and workspace package-name discovery. It does not own Husky hooks, lint-staged orchestration, or git workflow policy beyond the commitlint configuration it exports.

Notes

  • @prata.ma/anvil-commit now ships a package CHANGELOG.md and participates in the repo's multi-package release workflow alongside @prata.ma/anvil.
  • The only documented import path is @prata.ma/anvil-commit; internal source files and non-exported internal types are not stable public API.
  • This repo's root commitlint.config.ts still imports ./@packages/anvil-commit/src/index directly as a fresh-runner bootstrap optimization for CI and release PR hooks.
  • Repo state currently records a known @prata.ma/anvil-commit test assertion around workspace project-name ordering during broader test runs.