Skip to content

v0.0.1

Choose a tag to compare

@zamdevio zamdevio released this 09 Jul 03:47

expgov v0.0.1 — first public release

Portable export-governance for TypeScript SDK barrels. Inventory public exports, diff between refs, validate tier rules, trend release tags, trace barrel history, and map the export graph — read-only by default except init.

Docs: https://expgov.pages.dev


Install

# CLI (devDependency — binary name is still `expgov`)
pnpm add -D @expgov/cli

# SDK only — programmatic runExports* APIs
pnpm add -D @expgov/core
expgov init
expgov validate
expgov inventory

CI / scripting:

expgov validate --json --silent

npm packages

Package npm Role
CLI @expgov/cli@0.0.1 expgov command + @expgov/cli/core config types
SDK @expgov/core@0.0.1 runExports* engine without the CLI binary

The CLI tarball is self-contained (dist/cli.js bundles core at build time). Config authors can use:

import { defineConfig, type ExpgovConfig } from '@expgov/cli/core';

SDK consumers import runExportsValidate, runExportsInventory, etc. from @expgov/core — same engines as the CLI, host-neutral, with matching --json envelopes.


Why @expgov/cli and not expgov?

npm rejected the unscoped name expgov as too similar to the existing package expo. That is registry policy, not a permissions issue — owning the @expgov org does not reserve the global unscoped name.

  • Install package: @expgov/cli
  • Command on PATH: expgov (unchanged)

Details: https://expgov.pages.dev/install


Commands

Command Purpose
init Scaffold expgov.config.ts
inventory Barrel snapshot — counts, tiers, namespaces
diff Compare export surfaces between refs
validate Governance checks (exit 0/1)
doctor Config discovery and cache hygiene
suggest Dry-run tier allowlist hints
trend Export counts across release tags
timeline Git log of barrel edits
graph Export surface graph
version CLI semver + optional npm update check
help Command reference

Global flags: --json, --quiet, --silent, --cwd, --config, cache overrides.


Highlights

  • Tier governance@sdkTier JSDoc + nested tiers.{stable,internal,advanced} config buckets
  • Parity checks — tsconfig paths ↔ npm exports
  • Per-SHA cache.expgov/cache/ with worktree freshness gate
  • Machine output — stable JSON envelopes for CI
  • Thin CLI host — Commander/chalk/inquirer in CLI; domain logic in @expgov/core
  • TypeScript-only configexpgov.config.ts via jiti (no JSON config)
  • Docs site — VitePress at expgov.pages.dev
  • Example SDKexamples/sdk/ teaching fixture

Requirements

  • Node.js ≥ 20
  • Git repo with a TypeScript SDK barrel (index.ts re-exports)

Pre-v1 note

This is the first public release. CLI argv, --json envelope shape, and exit codes are treated as user-facing contracts. Internal APIs may still change before v1.


Links