kordoc 4.7.3 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +19 -1
  2. package/dist/{-WYNJOQ6P.js → -URO5XBEB.js} +11 -9
  3. package/dist/{chunk-TXQQ7URG.js → chunk-2ANLGAUG.js} +2 -2
  4. package/dist/{chunk-LMHVMGEC.js → chunk-37SAM3LH.js} +3 -3
  5. package/dist/{chunk-W5NZYPRQ.js → chunk-3CBHCDYD.js} +41 -9
  6. package/dist/chunk-3CBHCDYD.js.map +1 -0
  7. package/dist/{chunk-QETZP25M.cjs → chunk-5IRX3TQP.cjs} +3 -3
  8. package/dist/{chunk-QETZP25M.cjs.map → chunk-5IRX3TQP.cjs.map} +1 -1
  9. package/dist/{chunk-3P5YCJQE.js → chunk-7OHDTS5Q.js} +2 -2
  10. package/dist/{chunk-KSATSTC5.js → chunk-BN33O25L.js} +1 -1
  11. package/dist/{chunk-4KGGVCYX.js.map → chunk-BN33O25L.js.map} +1 -1
  12. package/dist/{chunk-KE6DLZAW.cjs → chunk-CX2LRBC5.cjs} +11 -11
  13. package/dist/{chunk-KE6DLZAW.cjs.map → chunk-CX2LRBC5.cjs.map} +1 -1
  14. package/dist/{chunk-HJV4BVQI.js → chunk-E6OJKTYS.js} +2 -2
  15. package/dist/{chunk-NYLYIN55.js → chunk-F7RZZI5P.js} +3 -3
  16. package/dist/{chunk-R4LXZRYP.cjs → chunk-GGZ5PSJO.cjs} +4 -4
  17. package/dist/{chunk-R4LXZRYP.cjs.map → chunk-GGZ5PSJO.cjs.map} +1 -1
  18. package/dist/{chunk-JKJEBDP7.js → chunk-HFVMCUXF.js} +3 -3
  19. package/dist/{chunk-RQVFFSAO.js → chunk-HS4762CD.js} +2 -2
  20. package/dist/{chunk-E6DONLTM.cjs → chunk-J7DBL77B.cjs} +2 -2
  21. package/dist/{chunk-E6DONLTM.cjs.map → chunk-J7DBL77B.cjs.map} +1 -1
  22. package/dist/{chunk-IMFIACHP.js → chunk-L2Q3NLHX.js} +2 -2
  23. package/dist/{chunk-EV53YE3W.cjs → chunk-L5CDTOC3.cjs} +1 -1
  24. package/dist/chunk-L5CDTOC3.cjs.map +1 -0
  25. package/dist/{chunk-P663PYWV.js → chunk-NFCQ5XNT.js} +2 -2
  26. package/dist/{chunk-KEGAEHWO.js → chunk-OKE6G67G.js} +2 -2
  27. package/dist/{chunk-QGATKC4R.cjs → chunk-OKISH2NK.cjs} +6 -6
  28. package/dist/{chunk-QGATKC4R.cjs.map → chunk-OKISH2NK.cjs.map} +1 -1
  29. package/dist/{chunk-46F5RMU7.js → chunk-S4SMUQAT.js} +2 -2
  30. package/dist/{chunk-CGJDCZA3.js → chunk-TXRTH5BV.js} +2 -2
  31. package/dist/{chunk-XOO6YEZE.js → chunk-VPAYFTMH.js} +3 -3
  32. package/dist/{chunk-4HZN7EZZ.js → chunk-WG473BIB.js} +2 -2
  33. package/dist/{chunk-Y7T5Z4DC.js → chunk-WXC4HKSD.js} +3 -3
  34. package/dist/{chunk-4KGGVCYX.js → chunk-XINP35F4.js} +1 -1
  35. package/dist/{chunk-KSATSTC5.js.map → chunk-XINP35F4.js.map} +1 -1
  36. package/dist/{chunk-3NKSSL44.js → chunk-YB2TYOYY.js} +3 -3
  37. package/dist/{chunk-VZ3AQVBN.js → chunk-ZEQPTIWN.js} +2 -2
  38. package/dist/chunks-M64IY7AK.js +10 -0
  39. package/dist/cli.js +21 -21
  40. package/dist/{formula-PDMZMBIP.cjs → formula-3K5KC3VV.cjs} +9 -9
  41. package/dist/{formula-PDMZMBIP.cjs.map → formula-3K5KC3VV.cjs.map} +1 -1
  42. package/dist/{formula-V6EAYHMF.js → formula-7BNCJ55B.js} +3 -3
  43. package/dist/{formula-IFKZZPD2.js → formula-YRMQ7BTI.js} +4 -4
  44. package/dist/{image-ocr-75WGMVU6.cjs → image-ocr-CBMJIJTQ.cjs} +12 -12
  45. package/dist/{image-ocr-75WGMVU6.cjs.map → image-ocr-CBMJIJTQ.cjs.map} +1 -1
  46. package/dist/{image-ocr-B7TMIG3F.js → image-ocr-O7TKPDTY.js} +8 -8
  47. package/dist/{image-ocr-XHBZONFZ.js → image-ocr-XRVXVYKO.js} +6 -6
  48. package/dist/index.cjs +396 -364
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.cts +42 -1
  51. package/dist/index.d.ts +42 -1
  52. package/dist/index.js +37 -5
  53. package/dist/index.js.map +1 -1
  54. package/dist/mcp.js +16 -16
  55. package/dist/{model-bundle-Q4HQXJQG.js → model-bundle-GNDUKNME.js} +5 -5
  56. package/dist/{models-QQA7OQHY.js → models-TJ45RB2Z.js} +5 -5
  57. package/dist/{parser-Z36MZUHS.js → parser-5MLJHSRX.js} +7 -7
  58. package/dist/{parser-4CBOPTVY.cjs → parser-GIVQWVKJ.cjs} +27 -27
  59. package/dist/{parser-4CBOPTVY.cjs.map → parser-GIVQWVKJ.cjs.map} +1 -1
  60. package/dist/{parser-HT7GZOF2.js → parser-U3SMCGRK.js} +7 -7
  61. package/dist/pdf-ocr-BUBZA4EE.cjs +14 -0
  62. package/dist/{pdf-ocr-6ZNGDVC6.cjs.map → pdf-ocr-BUBZA4EE.cjs.map} +1 -1
  63. package/dist/pdf-ocr-HITVPJLV.js +13 -0
  64. package/dist/pdf-ocr-K4WOCJGJ.js +16 -0
  65. package/dist/{profile-io-ACYRLCSR.js → profile-io-VATWYLZX.js} +3 -3
  66. package/dist/{rasterize-QYCLEH2J.js → rasterize-PNRXMSL2.js} +2 -2
  67. package/dist/render-YY5RKZEB.js +10 -0
  68. package/dist/seal-5ZNJXOOQ.js +10 -0
  69. package/dist/{setup-MG3YYKXU.js → setup-OEUDZ4BT.js} +3 -3
  70. package/dist/{watch-AZIY6AWC.js → watch-USNQJXQC.js} +10 -10
  71. package/package.json +2 -2
  72. package/dist/chunk-EV53YE3W.cjs.map +0 -1
  73. package/dist/chunk-W5NZYPRQ.js.map +0 -1
  74. package/dist/chunks-LWAOHTK2.js +0 -10
  75. package/dist/pdf-ocr-6ZNGDVC6.cjs +0 -14
  76. package/dist/pdf-ocr-NTXRJI4T.js +0 -13
  77. package/dist/pdf-ocr-TYMCEUPH.js +0 -16
  78. package/dist/render-5Y2US4IM.js +0 -10
  79. package/dist/seal-VU6JS2QD.js +0 -10
  80. /package/dist/{-WYNJOQ6P.js.map → -URO5XBEB.js.map} +0 -0
  81. /package/dist/{chunk-TXQQ7URG.js.map → chunk-2ANLGAUG.js.map} +0 -0
  82. /package/dist/{chunk-LMHVMGEC.js.map → chunk-37SAM3LH.js.map} +0 -0
  83. /package/dist/{chunk-3P5YCJQE.js.map → chunk-7OHDTS5Q.js.map} +0 -0
  84. /package/dist/{chunk-HJV4BVQI.js.map → chunk-E6OJKTYS.js.map} +0 -0
  85. /package/dist/{chunk-NYLYIN55.js.map → chunk-F7RZZI5P.js.map} +0 -0
  86. /package/dist/{chunk-JKJEBDP7.js.map → chunk-HFVMCUXF.js.map} +0 -0
  87. /package/dist/{chunk-RQVFFSAO.js.map → chunk-HS4762CD.js.map} +0 -0
  88. /package/dist/{chunk-IMFIACHP.js.map → chunk-L2Q3NLHX.js.map} +0 -0
  89. /package/dist/{chunk-P663PYWV.js.map → chunk-NFCQ5XNT.js.map} +0 -0
  90. /package/dist/{chunk-KEGAEHWO.js.map → chunk-OKE6G67G.js.map} +0 -0
  91. /package/dist/{chunk-46F5RMU7.js.map → chunk-S4SMUQAT.js.map} +0 -0
  92. /package/dist/{chunk-CGJDCZA3.js.map → chunk-TXRTH5BV.js.map} +0 -0
  93. /package/dist/{chunk-XOO6YEZE.js.map → chunk-VPAYFTMH.js.map} +0 -0
  94. /package/dist/{chunk-4HZN7EZZ.js.map → chunk-WG473BIB.js.map} +0 -0
  95. /package/dist/{chunk-Y7T5Z4DC.js.map → chunk-WXC4HKSD.js.map} +0 -0
  96. /package/dist/{chunk-3NKSSL44.js.map → chunk-YB2TYOYY.js.map} +0 -0
  97. /package/dist/{chunk-VZ3AQVBN.js.map → chunk-ZEQPTIWN.js.map} +0 -0
  98. /package/dist/{chunks-LWAOHTK2.js.map → chunks-M64IY7AK.js.map} +0 -0
  99. /package/dist/{formula-V6EAYHMF.js.map → formula-7BNCJ55B.js.map} +0 -0
  100. /package/dist/{formula-IFKZZPD2.js.map → formula-YRMQ7BTI.js.map} +0 -0
  101. /package/dist/{image-ocr-B7TMIG3F.js.map → image-ocr-O7TKPDTY.js.map} +0 -0
  102. /package/dist/{image-ocr-XHBZONFZ.js.map → image-ocr-XRVXVYKO.js.map} +0 -0
  103. /package/dist/{model-bundle-Q4HQXJQG.js.map → model-bundle-GNDUKNME.js.map} +0 -0
  104. /package/dist/{models-QQA7OQHY.js.map → models-TJ45RB2Z.js.map} +0 -0
  105. /package/dist/{parser-Z36MZUHS.js.map → parser-5MLJHSRX.js.map} +0 -0
  106. /package/dist/{parser-HT7GZOF2.js.map → parser-U3SMCGRK.js.map} +0 -0
  107. /package/dist/{pdf-ocr-NTXRJI4T.js.map → pdf-ocr-HITVPJLV.js.map} +0 -0
  108. /package/dist/{pdf-ocr-TYMCEUPH.js.map → pdf-ocr-K4WOCJGJ.js.map} +0 -0
  109. /package/dist/{profile-io-ACYRLCSR.js.map → profile-io-VATWYLZX.js.map} +0 -0
  110. /package/dist/{rasterize-QYCLEH2J.js.map → rasterize-PNRXMSL2.js.map} +0 -0
  111. /package/dist/{render-5Y2US4IM.js.map → render-YY5RKZEB.js.map} +0 -0
  112. /package/dist/{seal-VU6JS2QD.js.map → seal-5ZNJXOOQ.js.map} +0 -0
  113. /package/dist/{setup-MG3YYKXU.js.map → setup-OEUDZ4BT.js.map} +0 -0
  114. /package/dist/{watch-AZIY6AWC.js.map → watch-USNQJXQC.js.map} +0 -0
package/README.md CHANGED
@@ -86,6 +86,24 @@ MCP 등록 대신 스킬(SKILL.md) 형태로 쓰려면:
86
86
 
87
87
  ---
88
88
 
89
+ ## v4.8.0 변경사항
90
+
91
+ - **📑 `--format json` 에 페이지별 마크다운 (#68)**: JSON 결과에 `pages: [{ pageNumber, markdown }]` 이 기본으로 들어갑니다. v4.7.3 의 실제 페이지 경계(`pageMode: "layout"`)를 그대로 써서, RAG 인용 각주나 뷰어 페이지 동기화에 쪽 단위 본문을 바로 쓸 수 있습니다. 문서를 다시 파싱하지 않고 이미 만든 블록의 `pageNumber` 로 가르기 때문에 비용은 파싱 시간의 1% 미만입니다(24쪽 PDF 기준 parse 399ms / pages 2.5ms). `--pages 3-5` 를 쓰면 `pages` 에도 3~5쪽만 담기고, 페이지 번호를 매기지 않는 포맷(DOCX 등)에서는 `pages` 자체가 없습니다. 라이브러리에서는 `blocksToPages(blocks)` 로도 같은 값을 얻습니다. (@sorbetsharkroundhand 제안)
92
+
93
+ ```jsonc
94
+ {
95
+ "markdown": "# 전체 문서…",
96
+ "pages": [
97
+ { "pageNumber": 1, "markdown": "# 1페이지…" },
98
+ { "pageNumber": 2, "markdown": "2페이지…" }
99
+ ],
100
+ "blocks": [/* … */],
101
+ "metadata": { "pageCount": 2, "pageMode": "layout" }
102
+ }
103
+ ```
104
+
105
+ 여러 페이지에 걸친 표는 현 IR 구조상 시작 페이지의 한 블록이라, 표가 이어지는 중간 페이지의 `markdown` 은 빈 문자열입니다(항목 자체는 남깁니다 — 배열 길이 = 쪽수).
106
+
89
107
  ## v4.7.3 변경사항
90
108
 
91
109
  - **📄 HWP/HWPX 실제 페이지 경계 복원 (#66)**: 한컴 저장본의 조판 캐시(HWPX `linesegarray` / HWP5 `PARA_LINE_SEG`)로 실제 페이지를 복원합니다 — `pageCount`·블록별 `pageNumber` 가 섹션 근사가 아닌 **실제 쪽 번호**가 되고, `parse(buffer, { pages: "3-5" })` 가 실제 3~5쪽을 반환합니다. 신호 4종(vertpos 역행·명시 쪽나눔·분할 표의 셀 흐름 리셋·분할 직후 이중 카운트 억제)을 결합해 실코퍼스 hwp↔hwpx↔pdf 쌍 대조에서 페이지 수 전수 일치. 조판 캐시가 없는 생성 파일은 종전대로 섹션 근사로 동작하며, 새 메타데이터 **`pageMode: "layout" | "section"`** 으로 구분됩니다(근사 상태에서 `pages` 필터 사용 시 `PAGE_BOUNDARY_APPROXIMATE` 경고). RAG 페이지 인용·뷰어 동기화용. (@sorbetsharkroundhand 제안)
@@ -800,7 +818,7 @@ for (const p of r.pageQuality ?? []) {
800
818
  npx kordoc 사업계획서.hwpx # 터미널 출력
801
819
  npx kordoc 보고서.hwp -o 보고서.md # 파일 저장
802
820
  npx kordoc *.pdf -d ./변환결과/ # 일괄 변환
803
- npx kordoc 검토서.hwpx --format json # JSON (blocks + metadata 포함)
821
+ npx kordoc 검토서.hwpx --format json # JSON (blocks + pages + metadata 포함)
804
822
  npx kordoc 보고서.hwpx --pages 1-3 # 페이지 범위
805
823
  npx kordoc fill 신청서.hwpx -f '성명=홍길동,주소=서울' -o 결과.hwpx # 양식 채우기
806
824
  npx kordoc fill 신청서.hwpx -j values.json -o 결과.hwpx # JSON 파일로 채우기
@@ -4,6 +4,7 @@ import {
4
4
  HwpxSession,
5
5
  PRESET_ALIAS,
6
6
  ValueCursor,
7
+ blocksToPages,
7
8
  blocksToPdf,
8
9
  compare,
9
10
  detectFormat,
@@ -52,9 +53,9 @@ import {
52
53
  resolveBuiltinTemplate,
53
54
  unknownFontWarnings,
54
55
  validateHwpx
55
- } from "./chunk-W5NZYPRQ.js";
56
+ } from "./chunk-3CBHCDYD.js";
56
57
  import "./chunk-7FCNOKOR.js";
57
- import "./chunk-4KGGVCYX.js";
58
+ import "./chunk-XINP35F4.js";
58
59
  import "./chunk-MOL7MDBG.js";
59
60
  import {
60
61
  applySplices,
@@ -62,7 +63,7 @@ import {
62
63
  buildRangeSplices,
63
64
  placeSealHwpx,
64
65
  scanSectionXml
65
- } from "./chunk-NYLYIN55.js";
66
+ } from "./chunk-F7RZZI5P.js";
66
67
  import {
67
68
  DEFAULT_REDACT_RULES,
68
69
  redactMarkdown,
@@ -70,10 +71,10 @@ import {
70
71
  } from "./chunk-DZIXKL7E.js";
71
72
  import {
72
73
  blocksToChunks
73
- } from "./chunk-CGJDCZA3.js";
74
+ } from "./chunk-TXRTH5BV.js";
74
75
  import {
75
76
  blocksToMarkdown
76
- } from "./chunk-KEGAEHWO.js";
77
+ } from "./chunk-OKE6G67G.js";
77
78
  import {
78
79
  SPACE_EM_FIXED,
79
80
  SPACE_EM_FONT,
@@ -83,11 +84,11 @@ import {
83
84
  renderHwpxToSvg,
84
85
  simulateWrap,
85
86
  simulateWrapKeepWord
86
- } from "./chunk-XOO6YEZE.js";
87
- import "./chunk-VZ3AQVBN.js";
87
+ } from "./chunk-VPAYFTMH.js";
88
+ import "./chunk-ZEQPTIWN.js";
88
89
  import {
89
90
  VERSION
90
- } from "./chunk-IMFIACHP.js";
91
+ } from "./chunk-L2Q3NLHX.js";
91
92
  export {
92
93
  BUILTIN_TEMPLATES,
93
94
  DEFAULT_REDACT_RULES,
@@ -100,6 +101,7 @@ export {
100
101
  applySplices,
101
102
  blocksToChunks,
102
103
  blocksToMarkdown,
104
+ blocksToPages,
103
105
  blocksToPdf,
104
106
  buildParagraphSplices,
105
107
  buildRangeSplices,
@@ -161,4 +163,4 @@ export {
161
163
  unknownFontWarnings,
162
164
  validateHwpx
163
165
  };
164
- //# sourceMappingURL=-WYNJOQ6P.js.map
166
+ //# sourceMappingURL=-URO5XBEB.js.map
@@ -3,7 +3,7 @@ import {
3
3
  ensureModelsIn,
4
4
  getModelStatusIn,
5
5
  getModelsDir
6
- } from "./chunk-4HZN7EZZ.js";
6
+ } from "./chunk-WG473BIB.js";
7
7
 
8
8
  // src/ocr/models.ts
9
9
  import { join } from "path";
@@ -80,4 +80,4 @@ export {
80
80
  parseCharacterDict,
81
81
  ocrModelPath
82
82
  };
83
- //# sourceMappingURL=chunk-TXQQ7URG.js.map
83
+ //# sourceMappingURL=chunk-2ANLGAUG.js.map
@@ -2,11 +2,11 @@ import {
2
2
  HEADING_RATIO_H1,
3
3
  HEADING_RATIO_H2,
4
4
  HEADING_RATIO_H3
5
- } from "./chunk-KSATSTC5.js";
5
+ } from "./chunk-BN33O25L.js";
6
6
  import {
7
7
  safeMax,
8
8
  safeMin
9
- } from "./chunk-46F5RMU7.js";
9
+ } from "./chunk-S4SMUQAT.js";
10
10
 
11
11
  // src/pdf/image-regions.ts
12
12
  import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
@@ -3686,4 +3686,4 @@ export {
3686
3686
  extractPageBlocksWithLines,
3687
3687
  mergeCrossPageTables
3688
3688
  };
3689
- //# sourceMappingURL=chunk-LMHVMGEC.js.map
3689
+ //# sourceMappingURL=chunk-37SAM3LH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  HEADING_RATIO_H1,
7
7
  HEADING_RATIO_H2,
8
8
  HEADING_RATIO_H3
9
- } from "./chunk-4KGGVCYX.js";
9
+ } from "./chunk-XINP35F4.js";
10
10
  import {
11
11
  parsePageRange
12
12
  } from "./chunk-MOL7MDBG.js";
@@ -22,7 +22,7 @@ import {
22
22
  paraTextPureT,
23
23
  patchZipEntries,
24
24
  scanSectionXml
25
- } from "./chunk-NYLYIN55.js";
25
+ } from "./chunk-F7RZZI5P.js";
26
26
  import {
27
27
  MAX_COLS,
28
28
  MAX_ROWS,
@@ -32,14 +32,14 @@ import {
32
32
  dedupeRunningHeaders,
33
33
  flattenLayoutTables,
34
34
  mapPuaText
35
- } from "./chunk-KEGAEHWO.js";
35
+ } from "./chunk-OKE6G67G.js";
36
36
  import {
37
37
  SPACE_EM_FIXED,
38
38
  charWidthEm1000,
39
39
  fitRatioForFewerLines,
40
40
  measureTextWidth,
41
41
  simulateWrap
42
- } from "./chunk-XOO6YEZE.js";
42
+ } from "./chunk-VPAYFTMH.js";
43
43
  import {
44
44
  MAX_DECOMPRESS_SIZE,
45
45
  MAX_XML_DEPTH,
@@ -55,7 +55,7 @@ import {
55
55
  findChildByLocalName,
56
56
  localName,
57
57
  rawTextContent
58
- } from "./chunk-VZ3AQVBN.js";
58
+ } from "./chunk-ZEQPTIWN.js";
59
59
  import {
60
60
  KordocError,
61
61
  classifyError,
@@ -67,7 +67,7 @@ import {
67
67
  sanitizeHref,
68
68
  stripDtd,
69
69
  toArrayBuffer
70
- } from "./chunk-IMFIACHP.js";
70
+ } from "./chunk-L2Q3NLHX.js";
71
71
 
72
72
  // src/index.ts
73
73
  import { readFile } from "fs/promises";
@@ -21434,6 +21434,29 @@ async function fillHwpx(hwpxBuffer, values, blockedLabels) {
21434
21434
  };
21435
21435
  }
21436
21436
 
21437
+ // src/page-markdown.ts
21438
+ function blocksToPages(blocks) {
21439
+ const firstNumbered = blocks.find((b) => typeof b.pageNumber === "number")?.pageNumber;
21440
+ if (firstNumbered === void 0) return void 0;
21441
+ const byPage = /* @__PURE__ */ new Map();
21442
+ let current = firstNumbered;
21443
+ for (const block of blocks) {
21444
+ if (typeof block.pageNumber === "number") current = block.pageNumber;
21445
+ const bucket = byPage.get(current);
21446
+ if (bucket) bucket.push(block);
21447
+ else byPage.set(current, [block]);
21448
+ }
21449
+ const numbers = [...byPage.keys()];
21450
+ const min = Math.min(...numbers);
21451
+ const max = Math.max(...numbers);
21452
+ const pages = [];
21453
+ for (let pageNumber = min; pageNumber <= max; pageNumber++) {
21454
+ const pageBlocks = byPage.get(pageNumber);
21455
+ pages.push({ pageNumber, markdown: pageBlocks ? blocksToMarkdown(pageBlocks) : "" });
21456
+ }
21457
+ return pages;
21458
+ }
21459
+
21437
21460
  // src/hwpx/generator.ts
21438
21461
  import JSZip8 from "jszip";
21439
21462
 
@@ -28869,6 +28892,14 @@ async function parse(input, options) {
28869
28892
  return { success: false, fileType: "unknown", error: "\uBE48 \uBC84\uD37C\uC774\uAC70\uB098 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uC785\uB825\uC785\uB2C8\uB2E4.", code: "EMPTY_INPUT" };
28870
28893
  }
28871
28894
  const format = detectFormat(buffer);
28895
+ const result = await dispatch(format, buffer, opts);
28896
+ if (result.success && !result.pages) {
28897
+ const pages = blocksToPages(result.blocks);
28898
+ if (pages) return { ...result, pages };
28899
+ }
28900
+ return result;
28901
+ }
28902
+ async function dispatch(format, buffer, opts) {
28872
28903
  switch (format) {
28873
28904
  case "hwpx": {
28874
28905
  const zipFormat = await detectZipFormat(buffer);
@@ -28895,7 +28926,7 @@ async function parse(input, options) {
28895
28926
  }
28896
28927
  async function parseImage(buffer, options) {
28897
28928
  try {
28898
- const { parseImageDocument } = await import("./image-ocr-B7TMIG3F.js");
28929
+ const { parseImageDocument } = await import("./image-ocr-O7TKPDTY.js");
28899
28930
  const { blocks, warnings } = await parseImageDocument(buffer, options);
28900
28931
  return {
28901
28932
  success: true,
@@ -28954,7 +28985,7 @@ async function parseHwp(buffer, options) {
28954
28985
  async function parsePdf(buffer, options) {
28955
28986
  let parsePdfDocument;
28956
28987
  try {
28957
- const mod = await import("./parser-HT7GZOF2.js");
28988
+ const mod = await import("./parser-U3SMCGRK.js");
28958
28989
  parsePdfDocument = mod.parsePdfDocument;
28959
28990
  } catch {
28960
28991
  return {
@@ -29064,6 +29095,7 @@ export {
29064
29095
  fillFormFields,
29065
29096
  extractClickHereFields,
29066
29097
  fillHwpx,
29098
+ blocksToPages,
29067
29099
  PRESET_ALIAS,
29068
29100
  normalizeGongmunPreset,
29069
29101
  incompatibleGongmunWarnings,
@@ -29100,4 +29132,4 @@ export {
29100
29132
  parseHwpml,
29101
29133
  fillForm
29102
29134
  };
29103
- //# sourceMappingURL=chunk-W5NZYPRQ.js.map
29135
+ //# sourceMappingURL=chunk-3CBHCDYD.js.map