Skip to content

Track strict TypeScript validation for Pixi and upstream declarations #176

Description

@woksin

Problem

A strict external TypeScript 6 consumer (skipLibCheck: false) can compile the Toolbar/TimeMachine public types, but importing the Canvas/PivotViewer subpaths also loads Pixi's @webgpu/types, which currently conflicts with TypeScript 6's built-in WebGPU declarations. NodeNext validation additionally exposes extensionless declaration imports in the current @cratis/fundamentals package.

Components' own source and normal consumer fixture pass with skipLibCheck: true; this is third-party/upstream declaration interaction rather than a runtime failure. It should still be made explicit and reduced.

Direction

  • Add a versioned external public-type fixture for each subpath.
  • Keep skipLibCheck: false for subpaths that do not expose problematic third-party declarations.
  • Track Pixi/@webgpu TypeScript 6 compatibility and remove the workaround when upstream permits.
  • Consider whether Canvas/Pivot public props can use narrower Cratis-owned interfaces without hiding useful Pixi capabilities.
  • Coordinate NodeNext declaration fixes with @cratis/fundamentals rather than copying its types.
  • Use the Complete TSDoc coverage for intentional public exports #173 export inventory to determine whether advanced Pixi surfaces eventually justify a separate package; do not split speculatively.

Acceptance

  • Every public subpath has an external TypeScript fixture.
  • All Cratis-owned declarations pass strict checking.
  • Any remaining skipLibCheck exception names the exact upstream package/version and has a removal condition.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions