변경 내역

공개된 Imposia 패키지 버전별 변경 사항을 확인합니다.

이 페이지는 버전이 매겨진 Imposia 릴리스를 요약합니다. @imposia/core, @imposia/viewer, @imposia/client, @imposia/react는 같은 버전 번호를 사용하며, 전체 기록은 저장소의 CHANGELOG.md에 있습니다.

0.6.0 — 2026년 9월 27일

  • 분할 경계의 반복 테두리·여백, 각주·page float 겹침, 출판 CSS 우선순위, 목록 이어쓰기, 페이지 이름과 나눔 회피 처리를 수정했습니다. 위치 이동으로 생긴 시각적 넘침 때문에 불필요한 페이지가 생성되지 않습니다.
  • 독립적으로 작성한 페이지네이션 시나리오 183개와 연속 갱신 검사 2개를 추가했습니다. 지원 범위 밖의 입력은 명시적인 진단을 유지합니다.
  • gzip 실측/예산을 갱신했습니다: Core 페이지네이션 63.2/63.5 KiB, Publication 67.5/68 KiB, Viewer 11.8/13 KiB, Client 71.8/72 KiB, React 73.6/74 KiB.
  • 최초 확정 전 iframe 깜박임과 갱신 시 사용자 visibility 설정 손실을 수정하고 문서 라벨 대비를 개선했습니다.

업무 문서를 작성한 모양 그대로 페이지로 나누고, 긴 문서도 빠르게 처리하며, 인쇄 결과가 미리보기와 더 가까워졌습니다. 호환되지 않는 변경이 네 가지 있으니 마이그레이션 노트를 확인하세요.

  • 호환되지 않는 변경: 인쇄 시 배경을 유지하고, 인쇄용으로 옮기는 글꼴 이름을 바꾸며, React 상태 유니온에 "aborted"가 추가됐고, PDF.js 뷰어 mountViewer를 제거했습니다.
  • @page margin box 16개 전체와 글꼴·색·정렬·테두리·여백 스타일, 내용에 맞춰 폭을 나누는 위·아래 박스, @page :nth(), A3·A5·B4·B5·Legal·Ledger 용지를 지원합니다.
  • PublicationOptions.pageNumbering: "entry"로 Publication의 entry마다 페이지 번호를 따로 매깁니다. 청구서 묶음의 청구서마다 "Page 1 of N"이 찍힙니다.
  • 한 페이지보다 긴 표 행은 셀 단위로 나뉘고, 열을 병합한 grid 항목도 행 단위로 페이지를 나눕니다.
  • UNSUPPORTED_LAYOUT은 레이아웃을 통째로 유지해서 내용이 손실될 때만 알립니다. display: flex로 카드를 한 줄 배치하는 정도로는 더 이상 경고하지 않습니다.
  • dir="rtl" 선언을 유지하고, 오른쪽에서 왼쪽으로 쓰는 문서에는 페이지 진행 방향이 왼쪽에서 오른쪽으로 유지된다는 경고를 냅니다.
  • 10,000페이지까지 문서 길이에 비례하는 시간으로 페이지를 나누고, 호스트가 입력·노드·페이지·시간 한도를 올릴 수 있습니다.
  • 0.5.0의 실험용 escape hatch를 예정대로 제거했습니다.

0.5.0 — 2026년 8월 20일

Core가 브라우저 네이티브 파서로 HTML을 해석하고, 페이지네이션 성능 개선으로 긴 문서의 레이아웃 측정 작업을 줄였습니다.

  • parse5를 브라우저 네이티브 파싱(DOMParser, 템플릿 조각 파싱, 네이티브 직렬화)으로 교체했습니다. 형식이 잘못된 마크업은 이전과 다르게 해석될 수 있으며, parse5와 entities가 Core 번들에서 빠졌습니다.
  • 프로덕션 취약점 감사가 지적한 번들 내 postcss와 전이 의존성 nanoid를 패치했습니다.
  • 형제 노드 묶음을 통째로 배치하고 넘칠 때만 이분 탐색해, 노드마다 발생하던 강제 동기 리플로우와 인라인 넘침 검사를 제거했습니다.
  • 페이지 경계의 텍스트 분할 위치를 grapheme 단위 측정 대신 line box 좌표에서 계산합니다. 프로젝트의 긴 문단 픽스처 기준으로 getClientRects 호출이 영어 텍스트에서 98.1%, CJK 텍스트에서 95.9% 줄었습니다.
  • 한 세대 안에서 같은 URL의 에셋이 리졸버 호출 하나, 디코드 검증 하나, Blob URL 하나를 공유합니다. 참조별 바이트 계산과 확장 기능의 거부 권한은 바뀌지 않았습니다.
  • 브라우저 번들을 최소화하고 번들 크기 예산을 다시 정했습니다. 새 최적화 경로마다 한 릴리스 동안 임시 내부 폴백이 함께 실리며, 이번 릴리스에서 Core 번들이 커진 이유입니다.
  • 호스트가 부하 상태에서 문서를 갱신할 때 나타날 수 있던 Viewer 오류를 고쳤습니다. 커밋이 canonical frame에 반영된 시점과 호스트가 새 PageDocument를 전달하는 시점 사이의 짧은 구간을, Viewer의 주변부 동기화가 페이지 marker 손상으로 보고하는 대신 기다렸다가 진행합니다. 명시적 호출의 검증과 실제 손상 보고는 그대로입니다.

0.4.1 — 2026년 7월 27일

호출자의 뷰포트 제약 아래에서도 여러 페이지 인쇄가 안정적으로 동작하고, Viewer 패널이 반응형 컨트롤 레일을 따라갑니다.

  • 호출자가 작성한 html·body 뷰포트 제약이 격리된 네이티브 인쇄 스냅샷을 한 장으로 잘라내지 않도록 막고, 원본 문서의 인쇄 캐스케이드는 유지했습니다.
  • Viewer의 목차, 검색, 썸네일, Inspector 패널을 실제 반응형 컨트롤 레일 아래에 배치했습니다. 줄바꿈되는 320px 레이아웃도 포함합니다.
  • 로컬라이즈된 문서를 시작하기, 핵심 개념, 퍼블리싱 가이드, 패키지 API 레퍼런스, 브라우저 기본 PDF 저장을 중심으로 재구성했습니다.

0.4.1 릴리스 노트 보기

0.4.0 — 2026년 7월 24일

협조적 페이지네이션으로 긴 HTML과 CSR 갱신에서도 응답성을 유지하며, 승인되는 페이지 구조는 바꾸지 않습니다.

  • PageDocumentOptions.compose에 기본 8ms 실행 예산, 주입 가능한 스케줄러, 스케줄러 양보를 끄는 Infinity 설정을 추가했습니다.
  • 완료된 페이지 수와 수렴 패스를 알려 주는 잠정 진행률을 추가했습니다.
  • 임시 iframe에 콘텐츠와 스타일을 마운트한 뒤 글꼴과 이미지가 안정될 때까지 기다립니다.
  • 스케줄러 대기를 중단할 수 있게 했습니다. 서로를 대체하는 세대들은 직렬화해 최종 세대만 준비하도록 순서를 보장했습니다.
  • 네이티브 인쇄 스냅샷에서 원본 html·body 문맥, body 범위 선택자, 계산된 사용자 정의 속성을 보존합니다.
  • 여러 페이지에 걸친 카운터가 유지되도록 style containment는 사용하지 않고 확정된 페이지 루트에 layout containment를 적용했습니다.

0.4.0 릴리스 노트 보기

0.3.0 — 2026년 7월 24일

인쇄가 iframe 크기에 좌우되지 않도록 바꾸고, 제한된 표 조합을 위한 명시적 확장 지점을 추가했습니다.

  • Chromium 백지 인쇄 실패를 피하도록 네이티브 인쇄를 최상위 문서의 일시적이고 격리된 스냅샷으로 옮겼습니다.
  • Core와 Publication 확장을 위한 동기식 finalizePage 훅을 추가했습니다.
  • 분할된 표의 열 너비를 고정하는 선택형 createTableColgroupExtension() 프리셋을 추가했습니다.
  • 분할 표, 안전한 Grid, 페이지보다 높은 일반 블록이 현재 페이지의 남은 공간부터 사용하도록 바꿨습니다.

0.3.0 릴리스 노트 보기

0.2.0 — 2026년 7월 24일

호스트 앱이 Viewer 조작 UI를 원하는 구성으로 만들 수 있게 했습니다.

  • 호스트가 탐색·보기 모드·확대 UI를 직접 제공할 수 있도록 controls: false를 추가했습니다.
  • 즉시 시작되는 Viewer 상태 구독, React 상태 콜백, 명령형 탐색과 확대 제어를 추가했습니다.
  • Viewer 토큰과 표시 스타일을 각 Viewer 루트로 한정해 스타일시트를 가져와도 호스트 페이지가 바뀌지 않습니다.

0.2.0 릴리스 노트 보기

0.1.3 — 2026년 7월 23일

HTML·CSR 페이지네이션 정합성을 제품의 주 계약으로 정했습니다.

  • 원본 토큰이 확정된 페이지 전체에 정확히 한 번씩 원래 순서대로 나타나는지 브라우저별로 검증했습니다.
  • canonical iframe을 유지하면서 빠른 소스 변경을 적용하는 공개 CSR 정합성 예제를 추가했습니다.
  • 리플로우형 EPUB이 주 렌더링 경로가 아니라, 지원되는 의미 구조 기반 출력임을 명확히 했습니다.

0.1.3 릴리스 노트 보기

0.1.2 — 2026년 7월 23일

릴리스 검사와 데모 서버의 보안을 강화했습니다.

  • 검증과 코드 스캔 검사에 CodeRabbit 자동 리뷰를 추가했습니다.
  • 사용하지 않는 데모 서버 요청 지연 기능을 제거하고 관련 CodeQL 지적을 해결했습니다.
  • 구조 선택자는 보수적인 대체 동작을 갖는 Element.matches()에만 전달됨을 확인했습니다.

0.1.2 릴리스 노트 보기

0.1.1 — 2026년 7월 23일

데모, 문서, 릴리스 경로를 공개 패키지 업데이트에 맞게 정비했습니다.

  • 세로 A4 기본값과 방향 전환, A3·A4·B1 용지 프리셋을 추가했습니다.
  • 다국어 API와 퍼블리싱 문서를 확장했습니다.
  • npm trusted publishing, 태그, GitHub Release, tarball, 체크섬을 갖춘 보호된 GitHub Actions 릴리스 경로를 추가했습니다.

0.1.1 릴리스 노트 보기

0.1.0 — 2026년 7월 19일

최초 브라우저 전용 릴리스에서 공개 패키지 구성을 완성했습니다.

  • 지속되는 canonical iframe 하나에서 결정적으로 동작하는 브라우저 페이지네이션을 추가했습니다.
  • Viewer 표시 계층, 브라우저 Client 진입점, 기본 React 어댑터를 추가했습니다.
  • Publication 조합, Reader 탐색, 검색, 썸네일, 여러 표시 모드를 추가했습니다.
  • 확정된 원본에서 네이티브 인쇄와 리플로우형 EPUB 3.3 내보내기를 추가했습니다.
  • 코드가 있는 진단, 범위가 제한된 확장 기능, 에셋 해석, 제한된 표·Flex·Grid·다단·CJK 분할을 추가했습니다.

npm에서 @imposia/core 0.1.0 보기

On this page