Skip to content

Releases: EungyuCho/imposia

Imposia 0.5.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 00:35

Imposia 0.5.0

Imposia 0.5.0 parses HTML with the browser's own parser, cuts layout-measurement
work on long documents, and patches two vulnerable dependencies that were
bundled into the Core browser artifact.

This release contains one breaking change. Read
the migration note
before upgrading — most applications need no code change, but warning order,
PAGE_RULE_UNSUPPORTED.sourceIndex, and Node-side prepareDocument calls can
be affected.

Security

  • postcss 8.5.26 and its transitive nanoid 3.3.18. Both are bundled into
    @imposia/core, so the exposure reached consumers rather than staying in the
    toolchain — a consumer on 0.4.1 cannot fix this through their own lockfile.
    Upgrading is the delivery path.

Breaking

  • Core parses the string domain with the browser-native parser (DOMParser,
    template fragment parsing, native serialization) instead of parse5, and
    nodeOrder became a strided document-order slot. parse5 and entities
    left the Core bundle. Warnings are now ordered by post-recovery document
    order, PAGE_RULE_UNSUPPORTED.sourceIndex takes different numeric values,
    and prepareDocument requires a DOM.

Highlights

  • Sibling runs are placed as chunks and bisected only on overflow, replacing a
    forced synchronous reflow and an inline-overflow check per node.
  • Page-crossing text splits derive rendered-line boundaries from line-box rects
    plus a verified search instead of one Range.getClientRects() call per
    grapheme. On long-paragraph fixtures, getClientRects calls fell 98.1%
    (English) and 95.9% (CJK).
  • Break-constraint capture skips the interior of atomic subtrees when the CSS
    provably contains no fragmentation-relevant declarations. A heavy-SVG fixture
    skipped 21,240 interior captures per pass.
  • Same-URL assets within one generation share a single resolver call, decode
    validation, and Blob URL, without changing per-occurrence byte accounting or
    the extension allowAsset veto.
  • Viewer no longer throws canonical page markers do not match pageCount when a
    host updates a document under load. The commit was always atomic and no stale
    generation was ever rendered; the transient between a commit landing and the
    host delivering the new PageDocument was being classified as corruption.
    Present since at least 0.4.1 and reproduced there.
  • Core · PageDocument is 60.0 KiB gzip — 43.6 KiB below the pre-0.5.0 route,
    even though this release ships three performance escape hatches beside the
    fast paths they guard.
  • The spread-cover visual gate compares structural geometry on all three engines
    instead of checked-in Chromium/Darwin PNG baselines, which always skipped in
    CI and always failed locally.

Temporary options, removed next minor

experimental.forceSequentialPlacement, experimental.forceLegacyLineEnds,
and experimental.forceFullConstraintCapture restore the implementations the
new fast paths replaced. They exist for one release so a fast path can be
disabled in the field, and they are removed in the next minor — which is why
the Core bundle carries both paths right now. If one of them is load-bearing
for your application, say so on the issue that owns its removal before that
release ships. See
the 0.x API change policy.

Install

pnpm add @imposia/react@0.5.0

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.5.0
pnpm add @imposia/viewer@0.5.0
pnpm add @imposia/client@0.5.0

All four packages move together. Mixing a 0.5.0 package with a 0.4.1 one is
not a supported combination.

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.4.1

Choose a tag to compare

@github-actions github-actions released this 27 Jul 03:59
e929da8

Imposia 0.4.1

Imposia 0.4.1 keeps every committed page printable when application CSS
constrains the document viewport, and keeps Viewer panels aligned with compact
responsive controls.

Highlights

  • Core's private print wrapper resets caller html and body height,
    max-height, and overflow constraints without replacing the source
    document's CSS cascade, attributes, or computed custom properties.
  • A real Chromium PDF regression verifies that every composed page reaches the
    native print artifact even when caller CSS uses height: 100vh and
    overflow: hidden.
  • Viewer TOC, search, thumbnail, and Inspector panels now occupy the grid row
    below the actual control rail. The 320 px toolbar can wrap without panels
    overlapping or becoming unreachable.
  • The localized documentation now separates getting started, concepts,
    publishing guides, and React, Core, and Viewer API references while keeping
    browser-native Print and Save as PDF behavior explicit.

Install

pnpm add @imposia/react@0.4.1

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.4.1
pnpm add @imposia/viewer@0.4.1
pnpm add @imposia/client@0.4.1

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 08:12
f75d1f3

Imposia 0.4.0

Imposia 0.4.0 keeps the deterministic browser-layout paginator responsive
during large HTML/CSR generations without introducing another rendering
authority.

Highlights

  • Core cooperatively yields from constraint capture and recursive text,
    element, grid, line, and table fragmentation. The default main-thread budget
    is 8 ms, hosts can inject a scheduler, and Infinity disables handoffs.
  • Forced-yield and uninterrupted modes retain the same accepted page structure.
    Supersession aborts a pending scheduler wait and cleans the losing staging
    generation before the winner starts.
  • Fonts and images settle after staging content and styles are mounted.
    Progress now reports pass-local provisional page allocation through
    { completedPages, pass, provisional: true }.
  • Page roots use layout containment. Style containment remains disabled to
    preserve authored counter and quote semantics.

Install

pnpm add @imposia/react@0.4.0

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.4.0
pnpm add @imposia/viewer@0.4.0
pnpm add @imposia/client@0.4.0

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 05:02
a6a641e

Imposia 0.3.0

Imposia 0.3.0 makes native browser printing deterministic for the committed
HTML/CSR page document and adds a narrow post-pagination extension seam for
table continuation fixes.

Highlights

  • Core, Viewer, Client, and React print an isolated top-document snapshot of
    the accepted canonical pages rather than calling print() inside the sandboxed
    iframe. This avoids Chromium's blank-sheet iframe-print failure while keeping
    the committed page order and geometry.
  • PageExtension and PublicationExtension now support synchronous
    finalizePage(page, context) calls. They run once per measurable accepted
    page, in declaration order, before commit and include split-table continuation
    provenance.
  • createTableColgroupExtension() is an opt-in preset for stable measured
    column widths in table continuations. Authored colgroups remain structurally
    preserved by Core without enabling a width-freezing policy globally.
  • Fragmentable tables, safe grids, and oversized normal blocks fill the current
    page before continuing, eliminating avoidable blank lead-in pages.

Install

pnpm add @imposia/react@0.3.0

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.3.0
pnpm add @imposia/viewer@0.3.0
pnpm add @imposia/client@0.3.0

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:46
3b9ef12

Imposia 0.2.0

Imposia 0.2.0 makes the canonical page Viewer safe to embed and exposes its
presentation controls as a headless public interface.

Highlights

  • Viewer CSS is scoped to each Viewer root. Importing the stylesheet no longer
    changes the host document's body, :root, scrolling, background, or
    unrelated elements.
  • controls: false omits the built-in rail while preserving the canonical
    iframe, navigation, continuous/single/spread modes, responsive spread
    fallback, zoom, print, and theme behavior.
  • Framework-neutral consumers can subscribe to PageViewerState; React
    consumers receive state callbacks and imperative page navigation and zoom
    controls.
  • English, Korean, Japanese, and Simplified Chinese API references document the
    same embedding and headless-control contract.

Install

pnpm add @imposia/react@0.2.0

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.2.0
pnpm add @imposia/viewer@0.2.0
pnpm add @imposia/client@0.2.0

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.1.3

Choose a tag to compare

@github-actions github-actions released this 23 Jul 10:49

Imposia 0.1.3

Imposia 0.1.3 makes HTML/CSR pagination integrity the primary product contract.
It remains a synchronized patch release with no public API changes.

Highlights

  • The public cross-browser conformance corpus now records the source-token range
    on every committed content page and proves that the flattened page sequence
    contains all 96 tokens exactly once and in order.
  • The publishing lab opens with a live continuity specimen. It exposes the
    committed page ledger and runs three rapid CSR source revisions while keeping
    the same canonical iframe.
  • Product documentation now leads with atomic browser pagination and explicit
    failure visibility. Reflowable EPUB remains available as a semantic export.

Install

pnpm add @imposia/react@0.1.3

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.1.3
pnpm add @imposia/viewer@0.1.3
pnpm add @imposia/client@0.1.3

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.1.2

Choose a tag to compare

@github-actions github-actions released this 23 Jul 05:35
be4c0bc

Imposia 0.1.2

Imposia 0.1.2 is a synchronized maintenance release of the browser publishing
packages. It preserves the existing public APIs while tightening repository
review and security-scanning hygiene.

Highlights

  • Pull requests receive automatic CodeRabbit review alongside the existing
    verification and code-scanning checks.
  • The unused request-delay behavior was removed from the loopback-only demo
    server, eliminating the corresponding CodeQL resource-exhaustion finding.
  • The four public packages remain synchronized without changing their browser,
    React, publishing, or viewer contracts.

Install

pnpm add @imposia/react@0.1.2

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.1.2
pnpm add @imposia/viewer@0.1.2
pnpm add @imposia/client@0.1.2

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.

Imposia 0.1.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 03:54

Imposia 0.1.1

Imposia 0.1.1 is a synchronized patch release of the browser publishing
packages. It keeps the existing package APIs stable while improving the public
demo, documentation discovery, and release provenance.

Highlights

  • The demo now starts with portrait A4 and exposes orientation plus A3, A4, and
    B1 page presets.
  • Multilingual documentation navigation now surfaces package API references and
    publishing workflows more directly.
  • The release is built from the protected GitHub release environment and
    published to npm with OIDC trusted publishing and provenance.

Install

pnpm add @imposia/react@0.1.1

Framework-neutral consumers can install the package that matches their layer:

pnpm add @imposia/core@0.1.1
pnpm add @imposia/viewer@0.1.1
pnpm add @imposia/client@0.1.1

Packages

Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.