Version 1.0.0
@stackline/resolve-uri
Resolve a URI relative to an optional base URI
Independent maintenance of @jridgewell/resolve-uri 3.1.2. Original authors and licenses are retained.
Installation
# Preserve existing imports with an npm alias
npm install @jridgewell/resolve-uri@npm:@stackline/resolve-uri@1.0.0
# Or use the scoped package name in your imports
npm install @stackline/resolve-uri@1.0.0Node.js: >=6.0.0. Read the compatibility and maintenance notes before migrating.
Usage and API
The reference below may retain upstream package names. Use the alias installation above to run those imports with this Stackline release.
@stackline/resolve-uri
Independent maintenance fork of @jridgewell/resolve-uri@3.1.2. Original API, module format, runtime dependency ranges, and supported Node.js engines are preserved.
npm install @stackline/resolve-uri
# Preserve existing imports with an npm alias:
npm install @jridgewell/resolve-uri@npm:@stackline/resolve-uri@1.0.0
See UPSTREAM.md for the exact source and issue review, and CHANGELOG.md for focused maintenance changes. Development and release tooling runs on Node.js 24; that does not change the library runtime requirement.
Maintained by Stackline. Issues · npm.
Upstream documentation
@jridgewell/resolve-uri
Resolve a URI relative to an optional base URI
Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths.
Installation
npm install @jridgewell/resolve-uri
Usage
function resolve(input: string, base?: string): string;
import resolve from '@jridgewell/resolve-uri';
resolve('foo', 'https://example.com'); // => 'https://example.com/foo'
| Input | Base | Resolution | Explanation |
|---|---|---|---|
https://example.com |
any | https://example.com/ |
Input is normalized only |
//example.com |
https://base.com/ |
https://example.com/ |
Input inherits the base's protocol |
//example.com |
rest | //example.com/ |
Input is normalized only |
/example |
https://base.com/ |
https://base.com/example |
Input inherits the base's origin |
/example |
//base.com/ |
//base.com/example |
Input inherits the base's host and remains protocol relative |
/example |
rest | /example |
Input is normalized only |
example |
https://base.com/dir/ |
https://base.com/dir/example |
Input is joined with the base |
example |
https://base.com/file |
https://base.com/example |
Input is joined with the base without its file |
example |
//base.com/dir/ |
//base.com/dir/example |
Input is joined with the base's last directory |
example |
//base.com/file |
//base.com/example |
Input is joined with the base without its file |
example |
/base/dir/ |
/base/dir/example |
Input is joined with the base's last directory |
example |
/base/file |
/base/example |
Input is joined with the base without its file |
example |
base/dir/ |
base/dir/example |
Input is joined with the base's last directory |
example |
base/file |
base/example |
Input is joined with the base without its file |
Upstream issues and maintenance review
Upstream and issue review
Base: jridgewell/resolve-uri, npm @jridgewell/resolve-uri@3.1.2, commit caa7a299d6c688570773c81732f77d3c7035ded6. Full Git history and upstream attribution are retained. Last npm publication: 2024-02-14T19:32:38.143Z. Release inactivity does not by itself prove abandonment.
Review: 2026-09-29T00:21:55.224783+00:00. Source coverage: Most recently updated 100 open and 30 closed issue/PR entries; PRs removed. This is triage evidence, not a claim of exhaustive review.
Open #110 asks about percent-encoding semantics: preserve input bytes and document that filesystem paths/escaping must be normalized by callers. #108 requests Windows filesystem path support beyond URI resolution; do not reinterpret backslashes or drive letters and silently change existing URI semantics. #124 asks about upstream support and #92 is a development dashboard; this independent fork makes no upstream support claim. Closed #113 query propagation is covered by the upstream suite. Closed #117 concerns using URL instead; preserve support for relative/non-absolute bases. Runtime TypeScript source is unchanged; modern build/test tools reproduce CJS/UMD, ESM and types.
Reviewed issue entries
- jridgewell/resolve-uri#92 (open): Dependency Dashboard
- jridgewell/resolve-uri#124 (open): End Of Life Question
- jridgewell/resolve-uri#110 (open): percent-encoding
- jridgewell/resolve-uri#108 (open): Support windows paths on windows, both absolute and relative
- jridgewell/resolve-uri#117 (closed): why not simply use URL?
- jridgewell/resolve-uri#113 (closed): Query params need to be propagated
Release changes
Stackline changes
1.0.0 — 2026-09-28
Independent maintenance fork of @jridgewell/resolve-uri 3.1.2. Preserve published API, module exports and runtime engine compatibility. Open #110 asks about percent-encoding semantics: preserve input bytes and document that filesystem paths/escaping must be normalized by callers. #108 requests Windows filesystem path support beyond URI resolution; do not reinterpret backslashes or drive letters and silently change existing URI semantics. #124 asks about upstream support and #92 is a development dashboard; this independent fork makes no upstream support claim. Closed #113 query propagation is covered by the upstream suite. Closed #117 concerns using URL instead; preserve support for relative/non-absolute bases. Runtime TypeScript source is unchanged; modern build/test tools reproduce CJS/UMD, ESM and types.
Pinned development tools, real API and packed-consumer checks, GitHub CI/CodeQL gates, exact-artifact npm provenance and immutable release evidence are added. See UPSTREAM.md for limits of issue triage.
Release files and references
- README.md
- UPSTREAM.md
- CHANGELOG.md
- LICENSE
- NOTICE
- Package and publication metadata
- Full text documentation
Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.