This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| upath | ^2.0.1 → ^3.0.8 |
Release Notes
anodynos/upath (upath)
v3.0.8
Patch Changes
bb7e074: FixnormalizeTrimto preserve the//./DOS-device/UNC root so it stays idempotent —normalizeTrim('//.//')now returns'//./'instead of the invalid'//.'. Thanks to @spokodev for the fix.
v3.0.7
Patch Changes
7f1590a: Fix@types/node>= 25 compatibility.PlatformPathwas removed from@types/nodev25; upath now derives itsPlatformPathtype fromtypeof pathinstead of re-exporting the removed interface. Works with@types/nodev20 through v25+.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v3.0.6
Added
- Polar.sh funding -- added to
.github/FUNDING.ymlandpackage.jsonalongside existing GitHub Sponsors and Tidelift. - "Who Uses upath" section in README -- trust signals with notable dependents (Chokidar, Nuxt, 1,300+ npm packages).
- Architecture section in README -- explains the dynamic proxy pattern and how upath stays in sync with Node.js.
Changed
- README revamped -- pain-first API docs showing
pathvsupathbehavior side-by-side, inspired by the v2-era docs. Every extra function now explains why it exists (whatpathdoes wrong). - Deterministic
docs/API.mdgeneration -- test files are now sorted by name before the doc reporter processes them, eliminating spurious diffs caused by Jest's non-deterministic parallel execution order.
Fixed
- Pre-commit hook now works in git worktrees without
node_modules-- the hook falls back to the main worktree'snode_modules/.binwhen lint-staged isn't found locally.
v3.0.5
Patch releases for CI/CD setup (Copybara bidirectional sync, Trusted Publishing OIDC), build fixes, and internal tooling. No user-facing API changes.
v3.0.0
Breaking Changes
- Node >= 20 required — dropped support for Node 4–18. Update your CI matrix and
enginesfield. - CJS exports now include
__esModuleanddefaultproperties —require('upath')still works for all standard usage (no.defaultneeded). However,Object.keys(require('upath'))now includes"__esModule"and"default". Bundlers using Babel-style interop (mod.__esModule ? mod.default : mod) will resolve to.default, which IS the full upath object, so it works correctly. - TypeScript type params narrowed —
join(...paths: any[])→join(...paths: string[]), same forresolveandjoinSafe. If you pass non-string args, add explicit casts:join(myVar as string). _makeLongremoved from top-level exports — this was a deprecated Node.js internal. UsetoNamespacedPathinstead (available in upath v2+ and Node.js 8.3+). Note:_makeLongremains accessible via the.defaultproperty on CJS exports (it's part of the fullpathproxy), but this is not a supported API.- Boxed
Stringobjects no longer accepted —new String('foo')is rejected; use plain string primitives. This is unlikely to affect anyone.
Added
- TypeScript rewrite — full type safety, source-of-truth types shipped with the package.
- Dual CJS/ESM —
importandrequire()both work via package.jsonexports. - Named ESM imports —
import { normalize, join, toUnix } from 'upath'. matchesGlobtyped export (wraps Node 22+path.matchesGlob).toNamespacedPathtyped export.UPathinterface exported for TypeScript consumers.- Auto-generated API docs —
docs/API.mdbuilt from test suite.
Changed
- Source rewritten from CoffeeScript/JavaScript to TypeScript.
- Build toolchain changed to tsup (dual CJS + ESM output).
- Test framework changed to Jest with ts-jest.
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.