Skip to content

Classes

Spec

Defined in: spec/src/index.ts:37

The base, isomorphic Spec implementation.

Extends

Implements

Constructors

new Spec()
new Spec(
name,
bareSpec,
options?): Spec

Defined in: spec/src/browser.ts:298

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

Parameters
name

string

bareSpec

string

options?

SpecOptions

Returns

Spec

Inherited from

Spec.constructor

new Spec()
new Spec(spec, options?): Spec

Defined in: spec/src/browser.ts:299

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

Parameters
spec

string

options?

SpecOptions

Returns

Spec

Inherited from

Spec.constructor

new Spec()
new Spec(
spec,
bareOrOptions?,
options?): Spec

Defined in: spec/src/browser.ts:300

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

Parameters
spec

string | Spec

bareOrOptions?

string | SpecOptions

options?

SpecOptions

Returns

Spec

Inherited from

Spec.constructor

Properties

bareSpec
bareSpec: string

Defined in: spec/src/browser.ts:238

just the part AFTER the name, so 1.x in [email protected]

Implementation of
SpecLike.bareSpec
Inherited from

Spec.bareSpec

catalog?
optional catalog: string;

Defined in: spec/src/browser.ts:257

Inherited from

Spec.catalog

constructor
constructor: typeof Spec

Defined in: spec/src/browser.ts:296

The initial value of Object.prototype.constructor is the standard built-in Object constructor.

Inherited from
BrowserSpec.constructor
conventionalRegistryTarball?
optional conventionalRegistryTarball: string;

Defined in: spec/src/browser.ts:251

conventional location of the tarball on the registry, if it can be guessed. This is only attempted if the spec is a registry type, with a single version comparator. This can be used to elide resolved urls that are repetitive and predictable.

Implementation of
SpecLike.conventionalRegistryTarball
Inherited from

Spec.conventionalRegistryTarball

distTag?
optional distTag: string;

Defined in: spec/src/browser.ts:254

a dist-tag like ‘latest’

Implementation of
SpecLike.distTag
Inherited from

Spec.distTag

file?
optional file: string;

Defined in: spec/src/browser.ts:256

file path for file:// url specs

Implementation of
SpecLike.file
Inherited from

Spec.file

gitCommittish?
optional gitCommittish: string;

Defined in: spec/src/browser.ts:242

the commit value we will check out

Implementation of
SpecLike.gitCommittish
Inherited from

Spec.gitCommittish

gitRemote?
optional gitRemote: string;

Defined in: spec/src/browser.ts:239

the git remote to fetch from

Implementation of
SpecLike.gitRemote
Inherited from

Spec.gitRemote

gitSelector?
optional gitSelector: string;

Defined in: spec/src/browser.ts:240

the committish, semver range, and/or path portion of a git remote

Implementation of
SpecLike.gitSelector
Inherited from

Spec.gitSelector

gitSelectorParsed?
optional gitSelectorParsed: GitSelectorParsed;

Defined in: spec/src/browser.ts:241

the parsed ’::‘-separated key/value pairs: semver:<range> and path:<subpath>

Implementation of
SpecLike.gitSelectorParsed
Inherited from

Spec.gitSelectorParsed

name
name: string

Defined in: spec/src/browser.ts:235

the name portion, so foo in [email protected]

Implementation of
SpecLike.name
Inherited from

Spec.name

namedGitHost?
optional namedGitHost: string;

Defined in: spec/src/browser.ts:243

github, gitlab, bitbucket, gist, etc.

Implementation of
SpecLike.namedGitHost
Inherited from

Spec.namedGitHost

namedGitHostPath?
optional namedGitHostPath: string;

Defined in: spec/src/browser.ts:244

the path that’s parsed when we have a named git host

Implementation of
SpecLike.namedGitHostPath
Inherited from

Spec.namedGitHostPath

namedJsrRegistry?
optional namedJsrRegistry: string;

Defined in: spec/src/browser.ts:248

Inherited from

Spec.namedJsrRegistry

namedRegistry?
optional namedRegistry: string;

Defined in: spec/src/browser.ts:247

In specs like foo@npm:bar@1, this is the ‘npm’ part. Other registries can be mapped using the registries option.

Implementation of
SpecLike.namedRegistry
Inherited from

Spec.namedRegistry

options
options: SpecOptionsFilled

Defined in: spec/src/browser.ts:234

options passed to the constructor, plus defaults

Implementation of
SpecLike.options
Inherited from

Spec.options

range?
optional range: Range;

Defined in: spec/src/browser.ts:253

parsed semver range specifier

Implementation of
SpecLike.range
Inherited from

Spec.range

registry?
optional registry: string;

Defined in: spec/src/browser.ts:249

registry to consult to resolve this spec

Implementation of
SpecLike.registry
Inherited from

Spec.registry

registrySpec?
optional registrySpec: string;

Defined in: spec/src/browser.ts:250

semver range or dist-tag for resolving against a packument

Implementation of
SpecLike.registrySpec
Inherited from

Spec.registrySpec

remoteURL?
optional remoteURL: string;

Defined in: spec/src/browser.ts:255

URL to download a tarball from, if it can be determined.

This is set for url specs of course, but also git remotes on known hosts that provide a gitHostArchive template.

Implementation of
SpecLike.remoteURL
Inherited from

Spec.remoteURL

scope?
optional scope: `@${string}`;

Defined in: spec/src/browser.ts:236

the name’s scope, so @acme in @acme/[email protected]

Implementation of
SpecLike.scope
Inherited from

Spec.scope

scopeRegistry?
optional scopeRegistry: string;

Defined in: spec/src/browser.ts:237

if the name is scoped, and there’s a registry associated with the scope, then this is that registry

Implementation of
SpecLike.scopeRegistry
Inherited from

Spec.scopeRegistry

semver?
optional semver: string;

Defined in: spec/src/browser.ts:252

spec to resolve against available versions

Implementation of
SpecLike.semver
Inherited from

Spec.semver

spec
spec: string

Defined in: spec/src/browser.ts:233

the full named specifier passed to the constructor

Implementation of
SpecLike.spec
Inherited from

Spec.spec

subspec?
optional subspec: Spec;

Defined in: spec/src/browser.ts:258

in bar@npm:[email protected], this is the spec for [email protected]

Implementation of
SpecLike.subspec
Inherited from

Spec.subspec

type
type: SpecType

Defined in: spec/src/browser.ts:232

the type of spec that this is, ultimately

Implementation of
SpecLike.type
Inherited from

Spec.type

workspace?
optional workspace: string;

Defined in: spec/src/browser.ts:246

the package name or path of the workspace being referenced

Implementation of
SpecLike.workspace
Inherited from

Spec.workspace

workspaceSpec?
optional workspaceSpec: string;

Defined in: spec/src/browser.ts:245

the specifier when using workspace: specs This can be either a semver range, *, ~, or ^, if the name is not modified. Or, it can include a workspace package name or path, like workspace:packages/foo@* or workspace:@scope/foo@*.

Implementation of
SpecLike.workspaceSpec
Inherited from

Spec.workspaceSpec

nodejsDependencies?
static optional nodejsDependencies: NodeJSDependenciesOptions;

Defined in: spec/src/browser.ts:230

Inherited from

Spec.nodejsDependencies

Accessors

final
Get Signature
get final(): Spec & object

Defined in: spec/src/browser.ts:267

Return the final entry in the chain of subspecs When deciding which thing to actually fetch, spec.final is the thing to look at.

Returns

Spec & object

Implementation of
SpecLike.final
Inherited from

Spec.final

Methods

[kCustomInspect]()
kCustomInspect: string

Defined in: spec/src/index.ts:38

Parameters
_depth?

number

options?

InspectOptions

Returns

string

Overrides

Spec.[kCustomInspect]

toString()
toString(): string

Defined in: spec/src/browser.ts:286

Normally, the string value of a Spec is just the string passed in to be parsed. However, in the case of a chain of subspecs, like foo@npm:bar@npm:baz@npm:quux@latest, this simplifies out the middle parts of the chain, returning just foo@npm:quux@latest

Returns

string

Implementation of
SpecLike.toString
Inherited from

Spec.toString

parse()
Call Signature
static parse(
name,
bareSpec,
options?): Spec

Defined in: spec/src/browser.ts:178

Create a Spec object from a full spec, name+bareSpec, or Spec object

Note: If a Spec object is provided, it is returned as-is, without investigating whether the options match.

Parameters
name

string

bareSpec

string

options?

SpecOptions

Returns

Spec

Inherited from

Spec.parse

Call Signature
static parse(spec, options?): Spec

Defined in: spec/src/browser.ts:183

Create a Spec object from a full spec, name+bareSpec, or Spec object

Note: If a Spec object is provided, it is returned as-is, without investigating whether the options match.

Parameters
spec

string

options?

SpecOptions

Returns

Spec

Inherited from

Spec.parse

Call Signature
static parse(spec, options?): Spec

Defined in: spec/src/browser.ts:184

Create a Spec object from a full spec, name+bareSpec, or Spec object

Note: If a Spec object is provided, it is returned as-is, without investigating whether the options match.

Parameters
spec

Spec

options?

SpecOptions

Returns

Spec

Inherited from

Spec.parse

parseArgs()
static parseArgs(specOrBareSpec, opts?): Spec

Defined in: spec/src/browser.ts:195

Parameters
specOrBareSpec

string

opts?

SpecOptions

Returns

Spec

Inherited from

Spec.parseArgs

parseGitSelector()
static parseGitSelector(selector, spec?): [GitSelectorParsed, string, Range]

Defined in: spec/src/browser.ts:763

Should only ever be called with the bit that comes AFTER the # in the git remote url.

Parameters
selector

string

spec?

Spec

Returns

[GitSelectorParsed, string, Range]

Inherited from

Spec.parseGitSelector

Type Aliases

GitSelectorParsed

type GitSelectorParsed = object

Defined in: spec/src/types.ts:26

Type declaration

path?
optional path: string;
semver?
optional semver: string;

Scope

type Scope = `@${string}`

Defined in: spec/src/types.ts:7


SpecLike<Type>

type SpecLike<Type> = SpecLikeBase & object

Defined in: spec/src/types.ts:145

Type declaration

final
final: Type
subspec?
optional subspec: Type;

Type Parameters

Type extends SpecLikeBase


SpecLikeBase

type SpecLikeBase = object

Defined in: spec/src/types.ts:39

Type declaration

bareSpec
bareSpec: string

just the part AFTER the name, so 1.x in [email protected]

conventionalRegistryTarball?
optional conventionalRegistryTarball: string;

conventional location of the tarball on the registry, if it can be guessed. This is only attempted if the spec is a registry type, with a single version comparator. This can be used to elide resolved urls that are repetitive and predictable.

distTag?
optional distTag: string;

a dist-tag like ‘latest’

file?
optional file: string;

file path for file:// url specs

final
final: SpecLikeBase

getter that retrieves the actual spec value to be used

gitCommittish?
optional gitCommittish: string;

the commit value we will check out

gitRemote?
optional gitRemote: string;

the git remote to fetch from

gitSelector?
optional gitSelector: string;

the committish, semver range, and/or path portion of a git remote

gitSelectorParsed?
optional gitSelectorParsed: GitSelectorParsed;

the parsed ’::‘-separated key/value pairs: semver:<range> and path:<subpath>

name
name: string

the name portion, so foo in [email protected]

namedGitHost?
optional namedGitHost: string;

github, gitlab, bitbucket, gist, etc.

namedGitHostPath?
optional namedGitHostPath: string;

the path that’s parsed when we have a named git host

namedRegistry?
optional namedRegistry: string;

In specs like foo@npm:bar@1, this is the ‘npm’ part. Other registries can be mapped using the registries option.

options
options: SpecOptionsFilled

options passed to the constructor, plus defaults

range?
optional range: Range;

parsed semver range specifier

registry?
optional registry: string;

registry to consult to resolve this spec

registrySpec?
optional registrySpec: string;

semver range or dist-tag for resolving against a packument

remoteURL?
optional remoteURL: string;

URL to download a tarball from, if it can be determined.

This is set for url specs of course, but also git remotes on known hosts that provide a gitHostArchive template.

scope?
optional scope: Scope;

the name’s scope, so @acme in @acme/[email protected]

scopeRegistry?
optional scopeRegistry: string;

if the name is scoped, and there’s a registry associated with the scope, then this is that registry

semver?
optional semver: string;

spec to resolve against available versions

spec
spec: string

the full named specifier passed to the constructor

subspec?
optional subspec: SpecLikeBase;

in bar@npm:[email protected], this is the spec for [email protected]

type
type: SpecType

the type of spec that this is, ultimately

workspace?
optional workspace: string;

the package name or path of the workspace being referenced

workspaceSpec?
optional workspaceSpec: string;

the specifier when using workspace: specs This can be either a semver range, *, ~, or ^, if the name is not modified. Or, it can include a workspace package name or path, like workspace:packages/foo@* or workspace:@scope/foo@*.

toString()
Returns

string


SpecOptions

type SpecOptions = {
[k in keyof SpecOptionsFilled]?: SpecOptionsFilled[k]
}

Defined in: spec/src/types.ts:3


SpecOptionsFilled

type SpecOptionsFilled = object

Defined in: spec/src/types.ts:9

Type declaration

catalog
catalog: Record<string, string>
catalogs
catalogs: Record<string, Record<string, string>>
git-host-archives
git-host-archives: Record<string, string>;

tarball hosting services for hosts listed in git-hosts

git-hosts
git-hosts: Record<string, string>;

shorthand prefix names for known git hosts

jsr-registries
jsr-registries: Record<string, string>;

registries that work like https://npm.jsr.io

registries
registries: Record<string, string>

shorthand prefix names for known registries

registry
registry: string

the registry where a spec should be resolved against

scope-registries
scope-registries: Record<Scope, string>;

registries mapped to a @scope


SpecType

type SpecType =
| 'file'
| 'git'
| 'registry'
| 'remote'
| 'workspace'
| 'catalog'

Defined in: spec/src/types.ts:31

References

defaultGitHostArchives

Re-exports defaultGitHostArchives

defaultGitHosts

Re-exports defaultGitHosts

defaultJsrRegistries

Re-exports defaultJsrRegistries

defaultRegistries

Re-exports defaultRegistries

defaultRegistry

Re-exports defaultRegistry

defaultScopeRegistries

Re-exports defaultScopeRegistries

getOptions

Re-exports getOptions

gitHostWebsites

Re-exports gitHostWebsites

kCustomInspect

Re-exports kCustomInspect