Skip to content

Packages ​

All packages are published under the @studnicky scope to the GitHub Package Registry.

@studnicky:registry=https://npm.pkg.github.com

Public path contract ​

Packages publish their supported public entrypoints: ./node and ./browser runtime entrypoints, ./interfaces for public substitution contracts, and ./entities for canonical structured data where the package defines entities. Runtime entrypoints contain executable code; neutral contracts retain their own import paths. Construct stateful primitives through Class.create(config) and invoke their direct operation methods. Composition packages do not proxy dependency functionality; import dependency-owned contracts from that dependency's canonical public entrypoint.

See the Composition Contract and Package Registry for the workspace-wide rules and current platform-parity status.

Read each package page ​

Every package page uses the same reader contract: What it is identifies the primitive, What it is for names the consumer decision it supports, Northstar Books examples ties each runnable example to a bookstore problem, Public entrypoints lists every supported package and subpackage import path, and Exports names the symbols available from those paths. The pages describe building blocks that a bookstore composes into its own catalogue, checkout, fulfilment, and operations workflows; they do not prescribe a bookstore application.

Concurrency ​

PackageDescription
@studnicky/concurrencyKeyed async channels, semaphore, and coalesce primitives
@studnicky/virtual-fsIn-memory synchronous filesystem primitive with browser compatibility
@studnicky/signalInstance-based AbortSignal composition and timeout utilities

Time ​

PackageDescription
@studnicky/clockWall-clock and monotonic time with injectable providers for deterministic testing
@studnicky/schedulerReal-time and virtual (min-heap) scheduler primitives

State & Flow ​

PackageDescription
@studnicky/contextPer-request async context isolation using AsyncLocalStorage
@studnicky/fsmAbstract finite state machine base class with effect interpreter
@studnicky/paginatorCursor/page-list state tracker for paginated data sources
@studnicky/pipelineGeneric typed async pipeline for sequential context transforms
@studnicky/storeObservable state container with interchangeable persistence, ordered cache, durable browser-state synchronization, and composable normalized entity collections via @studnicky/store/entity
@studnicky/visible-rangePure index/offset arithmetic for computing the visible item range of a virtualized list

Data ​

PackageDescription
@studnicky/cacheLRU cache with optional TTL and capacity bounds
@studnicky/jsonJSON/object value-tools: deep merge, clone, immutable snapshots, freeze, path access, sort, patch
@studnicky/typesShared runtime type guards, predicate composition, JSON boundaries, and Date/Map/Set operand validation
@studnicky/drilldownDeterministic multi-level grouping, faceting, and sorting over arbitrary record data
@studnicky/filtersComposable declarative filters with matching-score threshold adapters at the matching entrypoint
@studnicky/configConfiguration validation and clamping utilities

Matching & Routing ​

PackageDescription
@studnicky/matchingDeterministic normalization, encoding, extraction, matching, scoring, and candidate-source primitives

I/O & Observability ​

PackageDescription
@studnicky/event-busPublish/subscribe event bus with backpressure-aware queues
@studnicky/fetchProfessional HTTP client with timeout, override hooks, and configured clients
@studnicky/loggerPluggable logging interface with portable transport architecture, child loggers, and structured metadata
@studnicky/errorsStandardized error hierarchy serializing to RFC 9457 Problem Details
@studnicky/resilienceRetry/backoff, circuit breaker, token bucket, keyed and sliding-window rate limiters, and dead-letter queue primitives

Buffers ​

PackageDescription
@studnicky/circular-bufferGeneric circular buffer with O(1) push and shift

Foundation ​

PackageDescription
@studnicky/eslint-configShared ESLint flat config for @studnicky packages
@studnicky/entityStrict entity input compilation and cycle detection
@studnicky/systemHardware and platform information for runtime decisions about worker pool sizes and hardware-accelerated code paths