v1.0.0
First stable release of @vitest/istanbuljs, a fork of istanbuljs/istanbuljs maintained by the Vitest team. The fork starts at upstream commit 28ffdbc (see vitest-dev/vitest#9433 for background). Upstream test suites and fixtures are retained and passing.
Packages
| Upstream | This release |
|---|---|
istanbul-lib-coverage |
@vitest/istanbul-lib-coverage |
istanbul-lib-instrument |
@vitest/istanbul-lib-instrument |
istanbul-lib-report + istanbul-reports |
@vitest/istanbul-lib-report (merged) |
istanbul-lib-source-maps |
@vitest/istanbul-lib-source-maps |
istanbul-lib-hook, nyc-config-* |
not included |
🚨 Breaking changes
- ESM only. All packages ship
"type": "module"with a singleexportsentry; there is no CommonJS build. (57205e2) - Node.js 22+ required. (20dd348, 3b69680)
istanbul-reportsmerged into@vitest/istanbul-lib-report. Built-in reports are created withcreate(name, opts)from the same package that providescreateContext(). (3b69680)create()is sync and only accepts built-in report names. Use the newcreateAsync()to load custom reporters. (#6)- Babel 8 is used for instrumentation in
@vitest/istanbul-lib-instrument. (#2) - Packages are scoped under
@vitest/*and versioned together. Contributions from the fork point onward are MIT licensed; upstream code remains under its original ISC / BSD-3-Clause terms (see each package'sLICENSE). (6c07541)
✨ Features
- Rewritten in TypeScript with
strictmode. All packages ship.d.mtsdeclarations, so@types/istanbul-*is no longer needed. Public types includeCoverageMapData,FileCoverageData,InstrumenterOptions,ContextOptions, per-report option interfaces (HtmlOptions,CoberturaOptions, …), plusReportOptions/ReportTypemaps for the built-in reports. (ff62edd) - ESM custom reporters via
createAsync(name, opts). Accepts a built-in name, a package name, an absolute path, or afile://URL, and unwraps ESM default exports, plainmodule.exports, and__esModule-transpiled CommonJS. (#6) /* istanbul ignore start */…/* istanbul ignore stop */hints, cherry-picked from istanbuljs/istanbuljs#835. (44e9374)sideEffects: falseon every package for bundler tree-shaking. (ab8fa51)html-spareport rebuilt with Preact + tsdown instead of React + webpack + Babel; SPA source ported to typed.tsx. (#1)
📦 Dependency reduction
Runtime dependencies were replaced with Node built-ins or inlined helpers, enforced going forward by e18e/ban-dependencies in lint. (#1)
| Package | Runtime dependencies |
|---|---|
@vitest/istanbul-lib-coverage |
none |
@vitest/istanbul-lib-report |
none (besides @vitest/istanbul-lib-coverage) |
@vitest/istanbul-lib-source-maps |
@jridgewell/trace-mapping, obug |
@vitest/istanbul-lib-instrument |
@babel/core, @babel/parser, @istanbuljs/schema, @jridgewell/trace-mapping |
Removed: semver, make-dir, supports-color, html-escaper, debug (→ obug), clone, is-windows, rimraf, js-yaml, nopt, webpack, babel-loader, react, react-dom.
🐞 Bug fixes
- Coverage classes no longer rely on
instanceof;CoverageMap,FileCoverageandCoverageSummaryobjects from a different copy of the package (e.g. upstreamistanbul-lib-coverage) are recognised structurally and merge correctly. (#8) textreport honoursFORCE_COLOR. (#7)coberturareport handlesfnMapentries withoutdecl. (#7)- Source maps: functions without a closing-brace mapping are now mapped, cherry-picked from istanbuljs/istanbuljs#837. (a8915bd)
🏗️ Infrastructure
- pnpm workspace with
catalog:pinned versions. - Tests run on Vitest, including a browser-mode suite with Playwright for the
html-spacomponents. oxlint+oxfmtreplace ESLint + Prettier;tsc --noEmittypechecks all packages.- CI matrix on Node 22 / 24 / 26 (Linux) plus Windows and macOS;
pkg-pr-newpreview releases on every PR; npm publishing with OIDC provenance andchangelogithubrelease notes. (#4, #5)
Credits
Thanks to the istanbuljs organization and its contributors for the original work this fork builds on.