Browse docs
Browse docs
Released 2026-09-29
A patch across all eleven packages. @dashforge/ui itself is unchanged; it
moves because internal dependencies are declared with workspace:*, which
pnpm rewrites at pack time to the exact sibling version. The reason this
release exists is in the bridge layer, and @dashforge/ui depends on it.
@dashforge/ui-core and @dashforge/rbac shipped 2.0.0 with a declaration
entry point that re-exported from paths their tarball did not contain. What a
consumer saw depended entirely on one compiler flag:
skipLibCheck | Symptom |
|---|---|
false | TS2307: Cannot find module './src/types', and so on for every re-export |
true (the common default) | compiles clean, and every symbol silently degrades to any |
The second row is why nobody noticed. Nothing changes at runtime: .d.ts files
never reach a bundle, so every test suite stayed green and every deployed app
kept working. The defect removes the type safety without touching the
behaviour, which makes it quiet rather than harmless.
The cause was a build target that deleted the declarations it was meant to
publish. On @dashforge/forms the sequence tsc --build … && rm -rf dist/src
is correct, because tsc writes the flat tree into dist/ and dist/src is a
redundant copy from the bundler. On ui-core and rbac, outDir points
outside the package, so tsc writes nothing into dist/ and dist/src is not
a copy. It is the whole payload.
No API change, no breaking change. Upgrade every @dashforge/* package
together:
pnpm add @dashforge/ui@2 @dashforge/theme-mui@2 @dashforge/theme-core@2 \
@dashforge/tokens@2 @dashforge/forms@2 @dashforge/ui-core@2 \
@dashforge/rbac@2 @dashforge/calendar-core@2If you are on 2.0.0 and your editor shows Dashforge types as any, or your
build fails with TS2307 inside node_modules/@dashforge, this is the release
that fixes it.
CI verifies the tarball now, not the working tree. 2.0.0 was green on lint,
typecheck, test and build across every project and still shipped two unusable
packages: inside the monorepo everything compiles against project references
that read the declarations from a directory no tarball includes, so only an
installing consumer ever saw it.
The new step packs all eleven packages, resolves every specifier each
declaration entry re-exports, and compiles a throwaway consumer against the
.tgz with skipLibCheck: false. That flag is the point: on the default
true the broken 2.0.0 compiles clean, so a probe on default settings would
have certified the very defect it exists to catch.
Unchanged from 2.0.0.