Releases: EungyuCho/imposia
Release list
Imposia 0.5.0
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
postcss8.5.26 and its transitivenanoid3.3.18. Both are bundled into
@imposia/core, so the exposure reached consumers rather than staying in the
toolchain — a consumer on0.4.1cannot 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 ofparse5, and
nodeOrderbecame a strided document-order slot.parse5andentities
left the Core bundle. Warnings are now ordered by post-recovery document
order,PAGE_RULE_UNSUPPORTED.sourceIndextakes different numeric values,
andprepareDocumentrequires 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 oneRange.getClientRects()call per
grapheme. On long-paragraph fixtures,getClientRectscalls 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 extensionallowAssetveto. - Viewer no longer throws
canonical page markers do not match pageCountwhen 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 newPageDocumentwas being classified as corruption.
Present since at least0.4.1and reproduced there. - Core · PageDocument is 60.0 KiB gzip — 43.6 KiB below the pre-
0.5.0route,
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.0Framework-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.0All 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
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
htmlandbodyheight,
max-height, andoverflowconstraints 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 usesheight: 100vhand
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.1Framework-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.1Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.4.0
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, andInfinitydisables 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.0Framework-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.0Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.3.0
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 callingprint()inside the sandboxed
iframe. This avoids Chromium's blank-sheet iframe-print failure while keeping
the committed page order and geometry. PageExtensionandPublicationExtensionnow 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.0Framework-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.0Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.2.0
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'sbody,:root, scrolling, background, or
unrelated elements. controls: falseomits 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.0Framework-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.0Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.1.3
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.3Framework-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.3Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.1.2
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.2Framework-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.2Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.
Imposia 0.1.1
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
releaseenvironment and
published to npm with OIDC trusted publishing and provenance.
Install
pnpm add @imposia/react@0.1.1Framework-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.1Packages
Each attached .tgz is the package tarball submitted to npm. SHA256SUMS
records the matching GitHub Release asset checksums.