kordoc 4.15.0 → 4.15.2

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 (163) hide show
  1. package/README.md +15 -0
  2. package/dist/{-WXTUDCBW.js → -5HJYDZKM.js} +15 -13
  3. package/dist/{chunk-DTM6FV74.js → chunk-2WERADM4.js} +17 -38
  4. package/dist/chunk-2WERADM4.js.map +1 -0
  5. package/dist/{chunk-2FT2DHE6.js → chunk-3WSNLH4B.js} +9 -1
  6. package/dist/chunk-3WSNLH4B.js.map +1 -0
  7. package/dist/{chunk-3CWXYYCL.cjs → chunk-3Y26ICMC.cjs} +32 -8
  8. package/dist/chunk-3Y26ICMC.cjs.map +1 -0
  9. package/dist/{chunk-IMR5HSB5.js → chunk-73K6BXEQ.js} +2 -2
  10. package/dist/{chunk-S5PJ7ZE2.js → chunk-AS66S3HA.js} +40 -29
  11. package/dist/chunk-AS66S3HA.js.map +1 -0
  12. package/dist/{chunk-6CUIXJOC.js → chunk-ATGOFB7P.js} +1 -1
  13. package/dist/{chunk-6BWU6SQX.js.map → chunk-ATGOFB7P.js.map} +1 -1
  14. package/dist/{chunk-EP4DTCVJ.cjs → chunk-B4LHTFLY.cjs} +44 -33
  15. package/dist/chunk-B4LHTFLY.cjs.map +1 -0
  16. package/dist/{chunk-6Y6KUOA6.js → chunk-CODOAMAV.js} +2 -2
  17. package/dist/{chunk-YINJO3PR.js → chunk-GFBLDBL2.js} +2 -2
  18. package/dist/{chunk-KO5S25RD.js → chunk-GWTN34UT.js} +2 -2
  19. package/dist/{chunk-KNZUG3SV.js → chunk-GYZCXVJX.js} +2 -2
  20. package/dist/{chunk-DCZVOIEO.cjs → chunk-J55UQC5H.cjs} +20 -2
  21. package/dist/chunk-J55UQC5H.cjs.map +1 -0
  22. package/dist/{chunk-B3NAP4FA.js → chunk-JPJNZXCC.js} +2 -2
  23. package/dist/{chunk-M26GSDV3.js → chunk-KKQBQY32.js} +27 -3
  24. package/dist/chunk-KKQBQY32.js.map +1 -0
  25. package/dist/{chunk-UCDOIHGW.js → chunk-KY6HUZZR.js} +2 -2
  26. package/dist/{chunk-AKWMQ5XT.js → chunk-MJHUOAAI.js} +2 -2
  27. package/dist/{chunk-FSQJJTHS.cjs → chunk-MRPDMIMN.cjs} +3 -3
  28. package/dist/{chunk-FSQJJTHS.cjs.map → chunk-MRPDMIMN.cjs.map} +1 -1
  29. package/dist/{chunk-MX36AA26.js → chunk-N4WZZ2PR.js} +2 -2
  30. package/dist/{chunk-4OLS5RDH.js → chunk-NYNJP45T.js} +89 -26
  31. package/dist/chunk-NYNJP45T.js.map +1 -0
  32. package/dist/{chunk-23AJ65GX.js → chunk-PTN7YG24.js} +90 -25
  33. package/dist/chunk-PTN7YG24.js.map +1 -0
  34. package/dist/{chunk-VWUYVEFN.cjs → chunk-PY2M7YVN.cjs} +1 -1
  35. package/dist/{chunk-VWUYVEFN.cjs.map → chunk-PY2M7YVN.cjs.map} +1 -1
  36. package/dist/{chunk-6BWU6SQX.js → chunk-RIVHAAV4.js} +1 -1
  37. package/dist/{chunk-6CUIXJOC.js.map → chunk-RIVHAAV4.js.map} +1 -1
  38. package/dist/{chunk-QMUM25RB.js → chunk-SX2KSBMO.js} +2 -2
  39. package/dist/{chunk-PJ2K6B3V.js → chunk-TCMEK4LF.js} +7 -7
  40. package/dist/{chunk-GE43BE46.js → chunk-V4BH5SRQ.js} +20 -2
  41. package/dist/chunk-V4BH5SRQ.js.map +1 -0
  42. package/dist/{chunk-LBYKEJUJ.cjs → chunk-VGU4FLLD.cjs} +2 -2
  43. package/dist/{chunk-LBYKEJUJ.cjs.map → chunk-VGU4FLLD.cjs.map} +1 -1
  44. package/dist/{chunk-MOL7MDBG.js → chunk-VQFA55IC.js} +20 -2
  45. package/dist/chunk-VQFA55IC.js.map +1 -0
  46. package/dist/chunk-VRZEPD4K.js +32 -0
  47. package/dist/chunk-VRZEPD4K.js.map +1 -0
  48. package/dist/{chunk-W33QEDLY.cjs → chunk-VSI5SRP2.cjs} +118 -54
  49. package/dist/chunk-VSI5SRP2.cjs.map +1 -0
  50. package/dist/{chunk-H5XLUEZG.js → chunk-VTUADXSS.js} +2 -2
  51. package/dist/{chunk-NJP76IZ5.js → chunk-WQWWVZ6Y.js} +40 -29
  52. package/dist/chunk-WQWWVZ6Y.js.map +1 -0
  53. package/dist/{chunk-TDYGL267.js → chunk-ZVN2H7XL.js} +3 -3
  54. package/dist/chunks-C3AW42QH.js +10 -0
  55. package/dist/cli.js +29 -28
  56. package/dist/cli.js.map +1 -1
  57. package/dist/{formula-WGBYDRVU.js → formula-D4PUT5J3.js} +18 -10
  58. package/dist/{formula-WGBYDRVU.js.map → formula-D4PUT5J3.js.map} +1 -1
  59. package/dist/{formula-RGK6WGD2.cjs → formula-DYVJSHWN.cjs} +25 -15
  60. package/dist/formula-DYVJSHWN.cjs.map +1 -0
  61. package/dist/{formula-USQK6NHN.js → formula-QVHAUNK6.js} +20 -8
  62. package/dist/{formula-USQK6NHN.js.map → formula-QVHAUNK6.js.map} +1 -1
  63. package/dist/{image-ocr-WCKYPPXY.js → image-ocr-5BHKFZL6.js} +29 -15
  64. package/dist/image-ocr-5BHKFZL6.js.map +1 -0
  65. package/dist/{image-ocr-JPP6JRFU.cjs → image-ocr-SGANCWQ5.cjs} +35 -21
  66. package/dist/image-ocr-SGANCWQ5.cjs.map +1 -0
  67. package/dist/{image-ocr-SLYPOW7G.js → image-ocr-TNNFV5VQ.js} +27 -13
  68. package/dist/image-ocr-TNNFV5VQ.js.map +1 -0
  69. package/dist/index.cjs +486 -500
  70. package/dist/index.cjs.map +1 -1
  71. package/dist/index.d.cts +3 -1
  72. package/dist/index.d.ts +3 -1
  73. package/dist/index.js +19 -33
  74. package/dist/index.js.map +1 -1
  75. package/dist/mcp.js +24 -23
  76. package/dist/mcp.js.map +1 -1
  77. package/dist/{model-bundle-BIS5HNXA.js → model-bundle-ISGAMXQS.js} +5 -5
  78. package/dist/{models-APDLDMGJ.js → models-LI5INKZM.js} +5 -5
  79. package/dist/page-range-M5SRB2WK.js +9 -0
  80. package/dist/page-range-OKVE3DBS.js +10 -0
  81. package/dist/page-range-QHHFTL7X.cjs +10 -0
  82. package/dist/page-range-QHHFTL7X.cjs.map +1 -0
  83. package/dist/{parser-6ZWJPQC2.js → parser-EYJID4YX.js} +82 -36
  84. package/dist/parser-EYJID4YX.js.map +1 -0
  85. package/dist/{parser-4D2YTTIH.js → parser-GW3KRTXY.js} +84 -36
  86. package/dist/parser-GW3KRTXY.js.map +1 -0
  87. package/dist/{parser-Y5NX55GC.cjs → parser-XCXDSKQ3.cjs} +155 -109
  88. package/dist/parser-XCXDSKQ3.cjs.map +1 -0
  89. package/dist/pdf-ocr-JCJAME6Q.js +15 -0
  90. package/dist/pdf-ocr-K7MJFRBS.cjs +16 -0
  91. package/dist/pdf-ocr-K7MJFRBS.cjs.map +1 -0
  92. package/dist/pdf-ocr-TC3BN2MV.js +18 -0
  93. package/dist/{profile-io-VJUZYOJA.js → profile-io-DBN56Y2Z.js} +3 -3
  94. package/dist/{rasterize-6U5NWILD.js → rasterize-BYRCKQIW.js} +3 -3
  95. package/dist/{redact-3CY3KGVD.js → redact-NV2QCDGE.js} +2 -2
  96. package/dist/{redact-doc-H56QYJGQ.js → redact-doc-UP2J6RRP.js} +13 -12
  97. package/dist/{redact-doc-H56QYJGQ.js.map → redact-doc-UP2J6RRP.js.map} +1 -1
  98. package/dist/{render-HNMDLMI2.js → render-WGD5DN4G.js} +8 -8
  99. package/dist/seal-5GAFTYQO.js +10 -0
  100. package/dist/{setup-RZVYAXAV.js → setup-E5JILUAN.js} +3 -3
  101. package/dist/visual-FKV2TRYY.js +20 -0
  102. package/dist/{watch-VA6GK56C.js → watch-LKWPCU42.js} +14 -13
  103. package/dist/{watch-VA6GK56C.js.map → watch-LKWPCU42.js.map} +1 -1
  104. package/package.json +1 -1
  105. package/dist/chunk-23AJ65GX.js.map +0 -1
  106. package/dist/chunk-2FT2DHE6.js.map +0 -1
  107. package/dist/chunk-3CWXYYCL.cjs.map +0 -1
  108. package/dist/chunk-4OLS5RDH.js.map +0 -1
  109. package/dist/chunk-DCZVOIEO.cjs.map +0 -1
  110. package/dist/chunk-DTM6FV74.js.map +0 -1
  111. package/dist/chunk-EP4DTCVJ.cjs.map +0 -1
  112. package/dist/chunk-GE43BE46.js.map +0 -1
  113. package/dist/chunk-M26GSDV3.js.map +0 -1
  114. package/dist/chunk-MOL7MDBG.js.map +0 -1
  115. package/dist/chunk-NJP76IZ5.js.map +0 -1
  116. package/dist/chunk-S5PJ7ZE2.js.map +0 -1
  117. package/dist/chunk-W33QEDLY.cjs.map +0 -1
  118. package/dist/chunks-S2XR4JDI.js +0 -10
  119. package/dist/formula-RGK6WGD2.cjs.map +0 -1
  120. package/dist/image-ocr-JPP6JRFU.cjs.map +0 -1
  121. package/dist/image-ocr-SLYPOW7G.js.map +0 -1
  122. package/dist/image-ocr-WCKYPPXY.js.map +0 -1
  123. package/dist/page-range-737B4EZW.js +0 -8
  124. package/dist/page-range-LNMXJU6W.js +0 -7
  125. package/dist/page-range-P7SDW6LR.cjs +0 -8
  126. package/dist/page-range-P7SDW6LR.cjs.map +0 -1
  127. package/dist/parser-4D2YTTIH.js.map +0 -1
  128. package/dist/parser-6ZWJPQC2.js.map +0 -1
  129. package/dist/parser-Y5NX55GC.cjs.map +0 -1
  130. package/dist/pdf-ocr-E3IZ3EI5.cjs +0 -14
  131. package/dist/pdf-ocr-E3IZ3EI5.cjs.map +0 -1
  132. package/dist/pdf-ocr-FNXYMNM6.js +0 -16
  133. package/dist/pdf-ocr-WSYPOBBU.js +0 -13
  134. package/dist/seal-VXNEOHZV.js +0 -10
  135. package/dist/visual-NSZP2FWZ.js +0 -19
  136. /package/dist/{-WXTUDCBW.js.map → -5HJYDZKM.js.map} +0 -0
  137. /package/dist/{chunk-IMR5HSB5.js.map → chunk-73K6BXEQ.js.map} +0 -0
  138. /package/dist/{chunk-6Y6KUOA6.js.map → chunk-CODOAMAV.js.map} +0 -0
  139. /package/dist/{chunk-YINJO3PR.js.map → chunk-GFBLDBL2.js.map} +0 -0
  140. /package/dist/{chunk-KO5S25RD.js.map → chunk-GWTN34UT.js.map} +0 -0
  141. /package/dist/{chunk-KNZUG3SV.js.map → chunk-GYZCXVJX.js.map} +0 -0
  142. /package/dist/{chunk-B3NAP4FA.js.map → chunk-JPJNZXCC.js.map} +0 -0
  143. /package/dist/{chunk-UCDOIHGW.js.map → chunk-KY6HUZZR.js.map} +0 -0
  144. /package/dist/{chunk-AKWMQ5XT.js.map → chunk-MJHUOAAI.js.map} +0 -0
  145. /package/dist/{chunk-MX36AA26.js.map → chunk-N4WZZ2PR.js.map} +0 -0
  146. /package/dist/{chunk-QMUM25RB.js.map → chunk-SX2KSBMO.js.map} +0 -0
  147. /package/dist/{chunk-PJ2K6B3V.js.map → chunk-TCMEK4LF.js.map} +0 -0
  148. /package/dist/{chunk-H5XLUEZG.js.map → chunk-VTUADXSS.js.map} +0 -0
  149. /package/dist/{chunk-TDYGL267.js.map → chunk-ZVN2H7XL.js.map} +0 -0
  150. /package/dist/{chunks-S2XR4JDI.js.map → chunks-C3AW42QH.js.map} +0 -0
  151. /package/dist/{model-bundle-BIS5HNXA.js.map → model-bundle-ISGAMXQS.js.map} +0 -0
  152. /package/dist/{models-APDLDMGJ.js.map → models-LI5INKZM.js.map} +0 -0
  153. /package/dist/{page-range-737B4EZW.js.map → page-range-M5SRB2WK.js.map} +0 -0
  154. /package/dist/{page-range-LNMXJU6W.js.map → page-range-OKVE3DBS.js.map} +0 -0
  155. /package/dist/{pdf-ocr-FNXYMNM6.js.map → pdf-ocr-JCJAME6Q.js.map} +0 -0
  156. /package/dist/{pdf-ocr-WSYPOBBU.js.map → pdf-ocr-TC3BN2MV.js.map} +0 -0
  157. /package/dist/{profile-io-VJUZYOJA.js.map → profile-io-DBN56Y2Z.js.map} +0 -0
  158. /package/dist/{rasterize-6U5NWILD.js.map → rasterize-BYRCKQIW.js.map} +0 -0
  159. /package/dist/{redact-3CY3KGVD.js.map → redact-NV2QCDGE.js.map} +0 -0
  160. /package/dist/{render-HNMDLMI2.js.map → render-WGD5DN4G.js.map} +0 -0
  161. /package/dist/{seal-VXNEOHZV.js.map → seal-5GAFTYQO.js.map} +0 -0
  162. /package/dist/{setup-RZVYAXAV.js.map → setup-E5JILUAN.js.map} +0 -0
  163. /package/dist/{visual-NSZP2FWZ.js.map → visual-FKV2TRYY.js.map} +0 -0
package/README.md CHANGED
@@ -89,6 +89,21 @@ MCP 등록 대신 스킬(SKILL.md) 형태로 쓰려면:
89
89
 
90
90
  ---
91
91
 
92
+ ## v4.15.2 변경사항
93
+
94
+ PDF 표의 좁은 시각적 간격을 빈 행·열로 잘못 늘리던 경우를 줄였습니다. 여러 행에 반복되는 실제 빈 열은 유지해, 기존 PDF 표 정답 2,692개의 정확도는 v4.15.1과 같습니다. 밀집 괘선의 교차점 처리에 쓰는 메모리도 줄였습니다. 일부 한 행짜리 머리표와 법령 양식의 빈 칸 구조는 아직 정확히 복원하지 못합니다. 자세한 수치와 남은 문제는 [CHANGELOG](CHANGELOG.md)를 참고하세요.
95
+
96
+ ## v4.15.1 변경사항
97
+
98
+ PDF 표 복원과 대형 입력의 안정성을 보완했습니다.
99
+
100
+ - **PDF 안정성과 속도**: 매우 긴 괘선 때문에 메모리가 폭증하던 문제를 고치고, 쪽 처리 후 자원 해제와 반복 그림 처리를 개선했습니다. 입력 ArrayBuffer를 재사용할 수 있으며, 쪽 수 상한으로 잘린 범위는 경고합니다.
101
+ - **PDF 글·표**: 원점이 이동하거나 회전된 쪽과 Form XObject 안의 좌표 처리를 바로잡았습니다. 좁은 빈 열, 쪽을 넘는 중첩표·비고를 복원하고 표 아래 주석·출처가 꼬리말로 삭제되지 않게 했습니다. 쪽별 마크다운도 제공합니다.
102
+ - **OCR**: JPEG의 EXIF 방향을 반영합니다. 큰 이미지는 최대 24 MP로 축소하고, 검출 상자는 3,000개까지 인식하며 축소·상한 초과는 경고합니다. 괘선 검출의 반복 계산도 줄였습니다.
103
+ - **인명 마스킹**: 명시적인 속기록·회의록 문맥의 이름 4건을 추가 탐지했습니다(opt-in). 같은 외부 정답에서 361/411, 오탐 0건이며 미탐 50건은 남아 있습니다.
104
+
105
+ 자세한 변경 내용은 [CHANGELOG](CHANGELOG.md)를 참고하세요.
106
+
92
107
  ## v4.15.0 변경사항
93
108
 
94
109
  실문서 코퍼스를 보강하고 프로덕션 리뷰에서 확인한 파싱·보안·성능 문제를 고쳤습니다.
@@ -4,7 +4,6 @@ import {
4
4
  HwpxSession,
5
5
  PRESET_ALIAS,
6
6
  ValueCursor,
7
- blocksToPages,
8
7
  chooseTableRepresentation,
9
8
  classifyTable,
10
9
  classifyTableTree,
@@ -51,22 +50,25 @@ import {
51
50
  unknownFontWarnings,
52
51
  usesGaejosikMunche,
53
52
  validateHwpx
54
- } from "./chunk-DTM6FV74.js";
53
+ } from "./chunk-2WERADM4.js";
54
+ import {
55
+ blocksToPages
56
+ } from "./chunk-VRZEPD4K.js";
55
57
  import {
56
58
  applySplices,
57
59
  buildParagraphSplices,
58
60
  buildRangeSplices,
59
61
  placeSealHwpx,
60
62
  scanSectionXml
61
- } from "./chunk-TDYGL267.js";
63
+ } from "./chunk-ZVN2H7XL.js";
62
64
  import {
63
65
  DEFAULT_REDACT_RULES,
64
66
  redactMarkdown,
65
67
  redactText
66
- } from "./chunk-2FT2DHE6.js";
68
+ } from "./chunk-3WSNLH4B.js";
67
69
  import {
68
70
  blocksToChunks
69
- } from "./chunk-MX36AA26.js";
71
+ } from "./chunk-N4WZZ2PR.js";
70
72
  import {
71
73
  SPACE_EM_FIXED,
72
74
  SPACE_EM_FONT,
@@ -91,20 +93,20 @@ import {
91
93
  renderSceneToHtml,
92
94
  simulateWrap,
93
95
  simulateWrapKeepWord
94
- } from "./chunk-PJ2K6B3V.js";
96
+ } from "./chunk-TCMEK4LF.js";
95
97
  import "./chunk-7FCNOKOR.js";
96
- import "./chunk-6BWU6SQX.js";
97
- import "./chunk-MOL7MDBG.js";
98
- import "./chunk-YINJO3PR.js";
98
+ import "./chunk-RIVHAAV4.js";
99
+ import "./chunk-VQFA55IC.js";
100
+ import "./chunk-GFBLDBL2.js";
99
101
  import {
100
102
  blocksToMarkdown,
101
103
  flattenLayoutTables,
102
104
  hasStructuredCellContent
103
- } from "./chunk-AKWMQ5XT.js";
104
- import "./chunk-QMUM25RB.js";
105
+ } from "./chunk-MJHUOAAI.js";
106
+ import "./chunk-SX2KSBMO.js";
105
107
  import {
106
108
  VERSION
107
- } from "./chunk-KO5S25RD.js";
109
+ } from "./chunk-GWTN34UT.js";
108
110
  export {
109
111
  BUILTIN_TEMPLATES,
110
112
  DEFAULT_REDACT_RULES,
@@ -194,4 +196,4 @@ export {
194
196
  usesGaejosikMunche,
195
197
  validateHwpx
196
198
  };
197
- //# sourceMappingURL=-WXTUDCBW.js.map
199
+ //# sourceMappingURL=-5HJYDZKM.js.map
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ blocksToPages
4
+ } from "./chunk-VRZEPD4K.js";
2
5
  import {
3
6
  allLinesegRemovalSplices,
4
7
  applySplices,
@@ -12,7 +15,7 @@ import {
12
15
  paraTextPureT,
13
16
  patchZipEntries,
14
17
  scanSectionXml
15
- } from "./chunk-TDYGL267.js";
18
+ } from "./chunk-ZVN2H7XL.js";
16
19
  import {
17
20
  CONVERT_MAP,
18
21
  FLAG_COMPRESSED,
@@ -58,15 +61,15 @@ import {
58
61
  renderDocumentToScene,
59
62
  romanNumeral,
60
63
  simulateWrap
61
- } from "./chunk-PJ2K6B3V.js";
64
+ } from "./chunk-TCMEK4LF.js";
62
65
  import {
63
66
  HEADING_RATIO_H1,
64
67
  HEADING_RATIO_H2,
65
68
  HEADING_RATIO_H3
66
- } from "./chunk-6BWU6SQX.js";
69
+ } from "./chunk-RIVHAAV4.js";
67
70
  import {
68
71
  parsePageRange
69
- } from "./chunk-MOL7MDBG.js";
72
+ } from "./chunk-VQFA55IC.js";
70
73
  import {
71
74
  MAX_DECOMPRESS_SIZE,
72
75
  MAX_XML_DEPTH,
@@ -82,7 +85,7 @@ import {
82
85
  findChildByLocalName,
83
86
  localName,
84
87
  rawTextContent
85
- } from "./chunk-YINJO3PR.js";
88
+ } from "./chunk-GFBLDBL2.js";
86
89
  import {
87
90
  MAX_COLS,
88
91
  MAX_ROWS,
@@ -97,7 +100,7 @@ import {
97
100
  hasStructuredCellContent,
98
101
  mapPuaText,
99
102
  noteSuffix
100
- } from "./chunk-AKWMQ5XT.js";
103
+ } from "./chunk-MJHUOAAI.js";
101
104
  import {
102
105
  KordocError,
103
106
  classifyError,
@@ -111,7 +114,7 @@ import {
111
114
  stripDtd,
112
115
  toArrayBuffer,
113
116
  unescapeHtml
114
- } from "./chunk-KO5S25RD.js";
117
+ } from "./chunk-GWTN34UT.js";
115
118
 
116
119
  // src/table/visual.ts
117
120
  import { readFile as readFile2 } from "fs/promises";
@@ -15733,7 +15736,7 @@ async function parseXlsxDocument(buffer, options) {
15733
15736
  }
15734
15737
  let pageFilter = null;
15735
15738
  if (options?.pages) {
15736
- const { parsePageRange: parsePageRange2 } = await import("./page-range-737B4EZW.js");
15739
+ const { parsePageRange: parsePageRange2 } = await import("./page-range-OKVE3DBS.js");
15737
15740
  pageFilter = parsePageRange2(options.pages, sheets.length);
15738
15741
  }
15739
15742
  const blocks = [];
@@ -16366,7 +16369,7 @@ async function parseXlsDocument(buffer, options) {
16366
16369
  const totalSheets = Math.min(globals.sheets.length, MAX_SHEETS2);
16367
16370
  let pageFilter = null;
16368
16371
  if (options?.pages) {
16369
- const { parsePageRange: parsePageRange2 } = await import("./page-range-737B4EZW.js");
16372
+ const { parsePageRange: parsePageRange2 } = await import("./page-range-OKVE3DBS.js");
16370
16373
  pageFilter = parsePageRange2(options.pages, totalSheets);
16371
16374
  }
16372
16375
  const allBlocks = [];
@@ -19150,29 +19153,6 @@ function chooseTableRepresentation(table2, opts = {}) {
19150
19153
  return structured ? "html" : "gfm";
19151
19154
  }
19152
19155
 
19153
- // src/page-markdown.ts
19154
- function blocksToPages(blocks) {
19155
- const firstNumbered = blocks.find((b) => typeof b.pageNumber === "number")?.pageNumber;
19156
- if (firstNumbered === void 0) return void 0;
19157
- const byPage = /* @__PURE__ */ new Map();
19158
- let current = firstNumbered;
19159
- for (const block of blocks) {
19160
- if (typeof block.pageNumber === "number") current = block.pageNumber;
19161
- const bucket = byPage.get(current);
19162
- if (bucket) bucket.push(block);
19163
- else byPage.set(current, [block]);
19164
- }
19165
- const numbers = [...byPage.keys()];
19166
- const min = Math.min(...numbers);
19167
- const max = Math.max(...numbers);
19168
- const pages = [];
19169
- for (let pageNumber = min; pageNumber <= max; pageNumber++) {
19170
- const pageBlocks = byPage.get(pageNumber);
19171
- pages.push({ pageNumber, markdown: pageBlocks ? blocksToMarkdown(pageBlocks) : "" });
19172
- }
19173
- return pages;
19174
- }
19175
-
19176
19156
  // src/hwpx/generator.ts
19177
19157
  import JSZip7 from "jszip";
19178
19158
 
@@ -28877,7 +28857,7 @@ async function dispatch(format, buffer, opts) {
28877
28857
  }
28878
28858
  async function parseImage(buffer, options) {
28879
28859
  try {
28880
- const { parseImageDocument } = await import("./image-ocr-WCKYPPXY.js");
28860
+ const { parseImageDocument } = await import("./image-ocr-5BHKFZL6.js");
28881
28861
  const { blocks, warnings } = await parseImageDocument(buffer, options);
28882
28862
  return {
28883
28863
  success: true,
@@ -28936,7 +28916,7 @@ async function parseHwp(buffer, options) {
28936
28916
  async function parsePdf(buffer, options) {
28937
28917
  let parsePdfDocument;
28938
28918
  try {
28939
- const mod = await import("./parser-4D2YTTIH.js");
28919
+ const mod = await import("./parser-GW3KRTXY.js");
28940
28920
  parsePdfDocument = mod.parsePdfDocument;
28941
28921
  } catch {
28942
28922
  return {
@@ -28947,8 +28927,8 @@ async function parsePdf(buffer, options) {
28947
28927
  };
28948
28928
  }
28949
28929
  try {
28950
- const { markdown, blocks, metadata, outline, warnings, isImageBased, pageQuality, qualitySummary, images } = await parsePdfDocument(buffer, options);
28951
- return { success: true, fileType: "pdf", markdown, blocks, metadata, outline, warnings, isImageBased, pageQuality, qualitySummary, images, pageCount: metadata?.pageCount };
28930
+ const { markdown, blocks, metadata, outline, warnings, isImageBased, pageQuality, qualitySummary, images, pages } = await parsePdfDocument(buffer, options);
28931
+ return { success: true, fileType: "pdf", markdown, blocks, metadata, outline, warnings, isImageBased, pageQuality, qualitySummary, images, pages, pageCount: metadata?.pageCount };
28952
28932
  } catch (err) {
28953
28933
  const isImageBased = err instanceof Error && "isImageBased" in err ? true : void 0;
28954
28934
  return { success: false, fileType: "pdf", error: sanitizeError(err), code: classifyError(err), isImageBased };
@@ -29108,7 +29088,6 @@ export {
29108
29088
  collectTableBlocks,
29109
29089
  classifyTableTree,
29110
29090
  chooseTableRepresentation,
29111
- blocksToPages,
29112
29091
  PRESET_ALIAS,
29113
29092
  normalizeGongmunPreset,
29114
29093
  incompatibleGongmunWarnings,
@@ -29149,4 +29128,4 @@ export {
29149
29128
  parseHwpml,
29150
29129
  fillForm
29151
29130
  };
29152
- //# sourceMappingURL=chunk-DTM6FV74.js.map
29131
+ //# sourceMappingURL=chunk-2WERADM4.js.map