/** Verify package-owned invariant source and publication contracts. */

import { resolve } from 'node:path'
import {
  collectPackageInvariantViolations,
  formatPackageInvariantViolation,
  packageInvariantOwners,
} from './package-invariants.ts'

const root = resolve(import.meta.dirname, '..')
const violations = collectPackageInvariantViolations(root)

if (violations.length > 0) {
  console.error('verify-package-invariants: violations found:')
  for (const violation of violations) {
    console.error(`  ${formatPackageInvariantViolation(root, violation)}`)
  }
  process.exit(1)
}

console.log(`verify-package-invariants: ${packageInvariantOwners(root).length} hand-owned package companion(s) conform.`)
