Files
Imhotep/packages/imhotep-playwright
John Dvorak e78ffe3419 refactor: remove world smuggling — type styles, fragments, topologySubjectIds
registry.ts: Add optional styles and fragments table types to the
  solver's GeometryWorld. Previously these were attached via
  (world as any).styles / .fragments, bypassing the type system.

extraction.ts:
  - remapTopologyIds: accept topologySubjectIds as explicit parameter
    instead of reading (world as any)._topologySubjectIds and deleting
    it post-remap. Eliminates 3 smuggling accesses (read, set, delete)
  - All worldAny.styles / worldAny.fragments / worldAny.strings /
    worldAny.transforms / worldAny.matrices assignments now use
    typed world.xxx access. worldAny variable removed entirely.
  - attachMeasuredChWidths: use world.styles directly.
  - (result.world as any).env mutation replaced with typed
    result.world.env assignment.
  - (sizeWorld as any).styles replaced with typed access.

predicates.ts: Replace all 3 (world as any).styles inline type-assert
  reads (getSubjectFontSizePx, getRootFontSizePx, getSubjectChWidthPx)
  with direct world.styles?.xxx access. No runtime behavior change.

Zero (world as any) casts remain in extraction.ts or predicates.ts.
658 tests pass.
2026-05-22 14:38:37 -07:00
..

imhotep-playwright

Playwright integration layer for Imhotep. Provides page wrapping, CDP-backed geometry extraction, runtime pooling, property-based test runners, renderer adapters, and preset assertion contracts.

Key Exports

Export Description
imhotep(page, opts) Attach Imhotep to a Playwright page
imhotepComponent(id, opts) Property-run entry for rendered components
imhotepStory(url, opts) Property-run entry for Storybook stories
imhotepFixture(path, opts) Property-run entry for fixture files
test, expect, imhotepFixtures Playwright test fixtures
ContextPool, PagePool, Semaphore Pooled runtime for multi-worker testing
touchTarget through modalContainment Reusable assertion presets