Skip to content

v0.7.0 — TS monorepo import resolution (ESM .js + workspace packages)

Choose a tag to compare

@galimar galimar released this 19 Jun 15:54

Veridge 0.7.0

Sharper JS/TS import resolution for real-world TypeScript monorepos. Deterministic and
regex/AST-based — works with or without the [treesitter] extra. Core stays zero-dependency.

New

  • TS/ESM .js.ts specifiers — NodeNext writes the runtime extension (import "./x.js"
    for an x.ts source); these now resolve to the TypeScript source instead of dropping.
  • Monorepo workspace packages — bare imports of in-tree packages (@scope/pkg,
    @scope/pkg/subpath) resolve via each package.json name to the package's source entry
    (src/index, index, …). npm / yarn / pnpm workspaces.

Impact

On a real TypeScript monorepo, file-import edges went 117 → 140 — the 23 new edges are
cross-package workspace imports that were previously invisible (0). impact on a shared core
package went from 2 to 53 dependents, so blast-radius queries now see across package boundaries.

Hardening

  • A package.json at the repo root resolves correctly (no more absolute /src/index candidates).
  • A malformed package.json is skipped, never aborting the index build.
  • Regression tests for both; 121 tests, ruff clean, dependency audit green.