@hyperfrontend/versioning/registry/models

models

Registry data models: registries themselves, package metadata, version metadata, and maintainer records.

Registry and RegistryConfig describe a configured registry endpoint (URL, scope, auth headers) used by the registry clients. PackageInfo (built via createPackageInfo) carries package-level metadata: name, dist-tags, versions list. VersionInfo (built via createVersionInfo) carries per-version metadata: version string, dependency declarations, dist (tarball + integrity), and Maintainer[]. The factories produce normalized objects regardless of the registry's exact payload shape so downstream code can rely on a single model.

API Reference

ƒ Functions

§function

createPackageInfo(options: { description: string; homepage: string; keywords: unknown; lastModified: string; latestVersion: string; license: string; maintainers: unknown; name: string; repository: string; versions: unknown }): PackageInfo

Creates a new PackageInfo object.

Parameters

NameTypeDescription
§options
{ description: string; homepage: string; keywords: unknown; lastModified: string; latestVersion: string; license: string; maintainers: unknown; name: string; repository: string; versions: unknown }
Configuration for the package info

Returns

PackageInfo
A new PackageInfo object

Example

Creating package info from registry data

const info = createPackageInfo({
  name: '@scope/my-package',
  latestVersion: '2.0.0',
  versions: ['1.0.0', '1.1.0', '2.0.0'],
  license: 'MIT'
})
§function

createVersionInfo(options: { dependencies: Record<string, string>; devDependencies: Record<string, string>; engines: Record<string, string>; gitHead: string; integrity: string; nodeVersion: string; npmVersion: string; optionalDependencies: Record<string, string>; peerDependencies: Record<string, string>; publishedAt: string; tarball: string; version: string }): VersionInfo

Creates a new VersionInfo object.

Parameters

NameTypeDescription
§options
{ dependencies: Record<string, string>; devDependencies: Record<string, string>; engines: Record<string, string>; gitHead: string; integrity: string; nodeVersion: string; npmVersion: string; optionalDependencies: Record<string, string>; peerDependencies: Record<string, string>; publishedAt: string; tarball: string; version: string }
Configuration for the release info

Returns

VersionInfo
A new VersionInfo object

Example

Creating version info from registry data

const release = createVersionInfo({
  version: '1.2.3',
  publishedAt: '2024-01-15T10:30:00Z',
  tarball: 'https://registry.npmjs.org/pkg/-/pkg-1.2.3.tgz'
})

Interfaces

§interface

Maintainer

Maintainer information.

Properties

§readonly email?:string
Maintainer email
§readonly name:string
Maintainer name
§interface

PackageInfo

Package information from a registry.

Properties

§readonly description?:string
Package description
§readonly homepage?:string
Homepage URL
§readonly keywords?:unknown
Keywords
§readonly lastModified?:string
Time of last modification
§readonly latestVersion:string
Latest version
§readonly license?:string
SPDX license identifier
§readonly maintainers:unknown
Package maintainers
§readonly name:string
Package name
§readonly repository?:string
Repository URL
§readonly versions:unknown
All published versions
§interface

Registry

Abstract interface for package registries.

Properties

§readonly name:string
Registry name (e.g., "npm", "yarn")
§readonly url:string
Registry URL
§interface

RegistryConfig

Registry configuration options.

Properties

§readonly authToken?:string
Authentication token
§readonly cacheTtl?:number
Cache TTL in milliseconds
§readonly timeout?:number
Request timeout in milliseconds
§readonly url?:string
Registry URL
§interface

VersionInfo

Version-specific information from a registry.

Properties

§readonly dependencies?:Record<string, string>
Runtime dependencies
§readonly devDependencies?:Record<string, string>
Development dependencies
§readonly engines?:Record<string, string>
Engine requirements
§readonly gitHead?:string
Git commit hash at publish time. Used to determine commit range for changelog generation.
NOTE: This value comes from npm registry, making it immutable and independent of local git state.
§readonly integrity?:string
Subresource integrity hash
§readonly nodeVersion?:string
Node.js version range
§readonly npmVersion?:string
npm version used to publish
§readonly optionalDependencies?:Record<string, string>
Optional peer dependencies
§readonly peerDependencies?:Record<string, string>
Peer dependencies
§readonly publishedAt:string
ISO date when published
§readonly tarball:string
Tarball URL
§readonly version:string
Version string