Source snapshot bcc79fcc · Declared package version 5.0.5. This page combines the checked-in package guide and manifest; commands and runtime behavior were not executed in this review.
Usage metering and billing core module for ContractSpec applications.
What It Provides
Layer: lib.
Consumers: bundles.
src/contracts/ contains contract specs, operations, entities, and registry exports.
src/docs/ contains docblocks and documentation-facing exports.
src/contracts/ contains contract specs, operations, entities, and registry exports.
src/docs/ contains docblocks and documentation-facing exports.
Installation
npm install @lssm-tech/lib.metering
or
bun add @lssm-tech/lib.metering
Usage
Import the root entrypoint from @lssm-tech/lib.metering, or choose a documented subpath when you only need one part of the package surface.
Architecture
src/aggregation is part of the package's public or composition surface.
src/analytics is part of the package's public or composition surface.
src/contracts/ contains contract specs, operations, entities, and registry exports.
src/docs/ contains docblocks and documentation-facing exports.
src/entities/ contains domain entities and value objects.
src/events.ts is package-level event definitions.
src/economic-usage-ledger.ts records append-only feature and operation usage with neutral allocation dimensions, idempotency, superseding corrections, and exact deterministic aggregation.
src/index.ts is the root public barrel and package entrypoint.
Public Entry Points
Export . resolves through ./src/index.ts.
Export ./aggregation resolves through ./src/aggregation/index.ts.
Export ./analytics/posthog-metering resolves through ./src/analytics/posthog-metering.ts.
Export ./analytics/posthog-metering-reader resolves through ./src/analytics/posthog-metering-reader.ts.
Export ./contracts resolves through ./src/contracts/index.ts.
Export ./docs resolves through ./src/docs/index.ts.
Export ./docs/metering.docblock resolves through ./src/docs/metering.docblock.ts.
Export ./entities resolves through ./src/entities/index.ts.
Export ./economic-usage-ledger resolves through ./src/economic-usage-ledger.ts.
Export ./events resolves through ./src/events.ts.
Export ./metering.capability resolves through ./src/metering.capability.ts.
The package publishes 11 total export subpaths; keep docs aligned with package.json.
Local Commands
bun run dev — contractspec-bun-build dev
bun run build — contractspec-bun-build build
bun run lint — bun lint:fix
bun run lint:check — biome check .
bun run lint:fix — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
bun run typecheck — tsgo --noEmit
bun run publish:pkg — bun publish --tolerate-republish --ignore-scripts --verbose
bun run publish:pkg:canary — bun publish:pkg --tag canary
bun run clean — rimraf dist .turbo
bun run build:bundle — contractspec-bun-build transpile
bun run build:types — contractspec-bun-build types
bun run prebuild — contractspec-bun-build prebuild
Recent Updates
Replace eslint+prettier by biomejs to optimize speed.
Stability.
Resolve lint, build, and type errors across nine packages.
Add AI provider ranking system with ranking-driven model selection.
Notes
Aggregation logic must stay deterministic — non-determinism causes billing discrepancies.
New economic usage should use decimal-string or integer quantities. Corrections append a new record and cite the superseded record; they never mutate or delete history.
Billing-related schemas are compliance-sensitive; changes require review.
Capability contract (metering.capability) is public API — treat as a breaking-change surface.
Declared capabilities.
Lib Metering
Usage metering and billing core module for ContractSpec applications
Use it to
Adopt usage metering and billing core module for contractspec applications
Requires
TypeScript
Choose another boundary when
The @lssm-tech/lib.metering package constraints do not match the target runtime or platform.
These are package-manifest entry points. Named symbols listed above come from the capability catalogue; this is not an exhaustive TypeScript symbol reference.