kordoc 4.24.28 → 4.24.30

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 (180) hide show
  1. package/README.md +6 -6
  2. package/dist/{-R5BXEKN7.js → -LTYXURUV.js} +21 -21
  3. package/dist/{chunk-7D3YXOZB.js → chunk-2P7Y3BT3.js} +2 -2
  4. package/dist/{chunk-GEJLVYIV.js → chunk-44Y7SP3W.js} +2 -2
  5. package/dist/{chunk-X323YP65.js → chunk-4LOXBT7W.js} +2 -2
  6. package/dist/{chunk-AZE46MS5.js → chunk-64CA5E3N.js} +132 -70
  7. package/dist/chunk-64CA5E3N.js.map +1 -0
  8. package/dist/{chunk-FWVOXMFA.js → chunk-6KXAVROI.js} +2 -2
  9. package/dist/{chunk-6EC4PI6I.js → chunk-7LEWA5WH.js} +3 -3
  10. package/dist/{chunk-K6Z6LKX4.js → chunk-ACMWKNEF.js} +3 -3
  11. package/dist/{chunk-O57FU2GJ.js → chunk-AI2YUNVV.js} +2 -2
  12. package/dist/{chunk-H7M6SO2O.js → chunk-AL6DVHWS.js} +2 -2
  13. package/dist/{chunk-E2HUJHVO.cjs → chunk-BVAKONSV.cjs} +183 -169
  14. package/dist/chunk-BVAKONSV.cjs.map +1 -0
  15. package/dist/{chunk-HATKKA2U.js → chunk-C4NF2E7X.js} +2 -2
  16. package/dist/{chunk-H77XXKSA.js → chunk-CAAW52SA.js} +2 -2
  17. package/dist/{chunk-EW4RSALL.js → chunk-CATJO2L2.js} +2 -2
  18. package/dist/{chunk-GLUA5OVR.js → chunk-DBUSSWBU.js} +19 -5
  19. package/dist/chunk-DBUSSWBU.js.map +1 -0
  20. package/dist/{chunk-IGHD2274.cjs → chunk-EFSZHHEP.cjs} +6 -6
  21. package/dist/{chunk-IGHD2274.cjs.map → chunk-EFSZHHEP.cjs.map} +1 -1
  22. package/dist/{chunk-NXX3ZNCD.js → chunk-EH744WIF.js} +2 -2
  23. package/dist/{chunk-KNJFLPCP.js → chunk-FICCE4LN.js} +21 -9
  24. package/dist/chunk-FICCE4LN.js.map +1 -0
  25. package/dist/{chunk-PIFI3L4K.cjs → chunk-FW2OQZ3D.cjs} +3 -3
  26. package/dist/{chunk-PIFI3L4K.cjs.map → chunk-FW2OQZ3D.cjs.map} +1 -1
  27. package/dist/{chunk-LGJYCCIK.js → chunk-GFV5RSHS.js} +3 -3
  28. package/dist/{chunk-JAAUNU4D.cjs → chunk-H6YTDIDW.cjs} +436 -357
  29. package/dist/chunk-H6YTDIDW.cjs.map +1 -0
  30. package/dist/{chunk-PUJKIYSL.js → chunk-HYACQOK6.js} +10 -10
  31. package/dist/{chunk-WKWEETPH.js → chunk-IM66ER3N.js} +6 -6
  32. package/dist/{chunk-7YTK74IH.cjs → chunk-JRWQEYSV.cjs} +186 -124
  33. package/dist/chunk-JRWQEYSV.cjs.map +1 -0
  34. package/dist/{chunk-XOIAIDR2.js → chunk-JSLRB4XE.js} +2 -2
  35. package/dist/{chunk-ZOMGHI3B.js → chunk-KR6UDBIV.js} +2 -2
  36. package/dist/{chunk-W7OSON66.js → chunk-L4WWG3U7.js} +4 -4
  37. package/dist/{chunk-Z35AEUSH.js → chunk-MTOZEYOT.js} +760 -711
  38. package/dist/chunk-MTOZEYOT.js.map +1 -0
  39. package/dist/{chunk-QXA6TBIT.js → chunk-MYYXPR42.js} +2 -2
  40. package/dist/{chunk-NVYIWJ5U.js → chunk-N2Y5LEOQ.js} +2 -2
  41. package/dist/{chunk-KW2ZZ2YM.js → chunk-N3LJARDG.js} +15 -15
  42. package/dist/{chunk-3WWMQS26.cjs → chunk-NLP5AB6W.cjs} +3 -3
  43. package/dist/{chunk-3WWMQS26.cjs.map → chunk-NLP5AB6W.cjs.map} +1 -1
  44. package/dist/{chunk-2LYNOQQO.js → chunk-PZO3WTII.js} +2 -2
  45. package/dist/{chunk-24XMCOWF.js → chunk-QIM4I2IO.js} +2 -2
  46. package/dist/{chunk-2MZ73PTH.cjs → chunk-QQXNGBN2.cjs} +77 -77
  47. package/dist/{chunk-2MZ73PTH.cjs.map → chunk-QQXNGBN2.cjs.map} +1 -1
  48. package/dist/{chunk-GEMWP24J.js → chunk-SFFX26HF.js} +2 -2
  49. package/dist/{chunk-BWUC36DH.js → chunk-SJMAND23.js} +18 -4
  50. package/dist/chunk-SJMAND23.js.map +1 -0
  51. package/dist/{chunk-RSCXIVO4.js → chunk-TXYE3JUL.js} +5 -5
  52. package/dist/{chunk-XZ5BYEHI.js → chunk-VNTU326I.js} +204 -125
  53. package/dist/chunk-VNTU326I.js.map +1 -0
  54. package/dist/{chunk-5NALEQEL.js → chunk-VOF2VCUF.js} +117 -68
  55. package/dist/chunk-VOF2VCUF.js.map +1 -0
  56. package/dist/{chunk-263KNYS6.js → chunk-WRZDSWMV.js} +2 -2
  57. package/dist/{chunk-L2E7FKSR.js → chunk-WW47MOC6.js} +5 -3
  58. package/dist/{chunk-L2E7FKSR.js.map → chunk-WW47MOC6.js.map} +1 -1
  59. package/dist/{chunk-PNW4B5W5.js → chunk-XNCPKOIP.js} +207 -128
  60. package/dist/chunk-XNCPKOIP.js.map +1 -0
  61. package/dist/{chunk-W5FIJEBK.cjs → chunk-XXFF4HE4.cjs} +2 -2
  62. package/dist/{chunk-W5FIJEBK.cjs.map → chunk-XXFF4HE4.cjs.map} +1 -1
  63. package/dist/chunks-EMHL6JYG.js +11 -0
  64. package/dist/cli.js +43 -43
  65. package/dist/{formula-MF3OTYTH.js → formula-4IAJ4J5W.js} +4 -4
  66. package/dist/{formula-QJSZPODL.cjs → formula-E3VGHFAI.cjs} +9 -9
  67. package/dist/{formula-QJSZPODL.cjs.map → formula-E3VGHFAI.cjs.map} +1 -1
  68. package/dist/{formula-TOVULTIT.js → formula-NJZUDYQO.js} +3 -3
  69. package/dist/generator-GPT76OML.js +17 -0
  70. package/dist/generator-MIX4R7HL.js +10 -0
  71. package/dist/generator-SUPBH2Q6.cjs +11 -0
  72. package/dist/{generator-2YABZHQ4.cjs.map → generator-SUPBH2Q6.cjs.map} +1 -1
  73. package/dist/{image-ocr-INZPDSJH.js → image-ocr-2ZA6RJB2.js} +6 -6
  74. package/dist/{image-ocr-LJ3WXDKU.js → image-ocr-7DKSLHV3.js} +9 -9
  75. package/dist/{image-ocr-4YJU3TJG.cjs → image-ocr-KOZT553E.cjs} +17 -17
  76. package/dist/{image-ocr-4YJU3TJG.cjs.map → image-ocr-KOZT553E.cjs.map} +1 -1
  77. package/dist/index.cjs +2033 -1984
  78. package/dist/index.cjs.map +1 -1
  79. package/dist/index.js +489 -440
  80. package/dist/index.js.map +1 -1
  81. package/dist/mcp.js +36 -36
  82. package/dist/memo-GFUUEHGA.js +17 -0
  83. package/dist/{model-bundle-PXUYQSHW.js → model-bundle-DFIFP2XF.js} +5 -5
  84. package/dist/{models-SBKYVIBF.js → models-25SH2DS7.js} +5 -5
  85. package/dist/{parse-worker-v2-LRC5HCT6.js → parse-worker-v2-RJ3ED73F.js} +22 -22
  86. package/dist/{parser-H3C7RXWN.cjs → parser-3ODQI4QF.cjs} +157 -157
  87. package/dist/{parser-H3C7RXWN.cjs.map → parser-3ODQI4QF.cjs.map} +1 -1
  88. package/dist/{parser-ARQ34S4N.js → parser-GBYPD4QF.js} +12 -12
  89. package/dist/{parser-OXELKPM7.js → parser-NEYOWPAK.js} +9 -9
  90. package/dist/{pdf-ocr-TTLDKJSL.js → pdf-ocr-5LHY3NXV.js} +6 -6
  91. package/dist/pdf-ocr-76NT4TCS.cjs +36 -0
  92. package/dist/{pdf-ocr-O5VNFKRB.cjs.map → pdf-ocr-76NT4TCS.cjs.map} +1 -1
  93. package/dist/{pdf-ocr-ZQHLCBSN.js → pdf-ocr-N6VQ72SP.js} +9 -9
  94. package/dist/{profile-io-QIFJ3WF3.js → profile-io-WCBBMCOR.js} +3 -3
  95. package/dist/{rasterize-EJUDQZTP.js → rasterize-GD325A5X.js} +3 -3
  96. package/dist/{redact-doc-6JMEZOGL.js → redact-doc-R4F5VYUA.js} +21 -21
  97. package/dist/{render-SV47YGRO.js → render-7GV7GKZE.js} +12 -12
  98. package/dist/{rewrite-fallback-QZV4FRPE.js → rewrite-fallback-STVHEDFQ.js} +13 -13
  99. package/dist/seal-XTZXAGHU.js +16 -0
  100. package/dist/{setup-FQ22XI2R.js → setup-EG7ZQNBB.js} +3 -3
  101. package/dist/{to-hwpx-BTJOOZAD.js → to-hwpx-2UZJV377.js} +7 -7
  102. package/dist/{to-hwpx-3EVHIIRR.js → to-hwpx-XURJVKKH.js} +4 -4
  103. package/dist/to-hwpx-ZTVZ6SRI.cjs +16 -0
  104. package/dist/{to-hwpx-GEI76GUY.cjs.map → to-hwpx-ZTVZ6SRI.cjs.map} +1 -1
  105. package/dist/visual-C33QKCQ6.js +37 -0
  106. package/dist/{watch-CF76OEMZ.js → watch-NSVI3VIY.js} +22 -22
  107. package/package.json +1 -1
  108. package/dist/chunk-5NALEQEL.js.map +0 -1
  109. package/dist/chunk-7YTK74IH.cjs.map +0 -1
  110. package/dist/chunk-AZE46MS5.js.map +0 -1
  111. package/dist/chunk-BWUC36DH.js.map +0 -1
  112. package/dist/chunk-E2HUJHVO.cjs.map +0 -1
  113. package/dist/chunk-GLUA5OVR.js.map +0 -1
  114. package/dist/chunk-JAAUNU4D.cjs.map +0 -1
  115. package/dist/chunk-KNJFLPCP.js.map +0 -1
  116. package/dist/chunk-PNW4B5W5.js.map +0 -1
  117. package/dist/chunk-XZ5BYEHI.js.map +0 -1
  118. package/dist/chunk-Z35AEUSH.js.map +0 -1
  119. package/dist/chunks-DFHM4S4R.js +0 -11
  120. package/dist/generator-2YABZHQ4.cjs +0 -11
  121. package/dist/generator-SH3TOHPH.js +0 -17
  122. package/dist/generator-SST2TDKE.js +0 -10
  123. package/dist/memo-DBSP7EDT.js +0 -17
  124. package/dist/pdf-ocr-O5VNFKRB.cjs +0 -36
  125. package/dist/seal-Z4E7DZ75.js +0 -16
  126. package/dist/to-hwpx-GEI76GUY.cjs +0 -16
  127. package/dist/visual-GGB2DRCT.js +0 -37
  128. /package/dist/{-R5BXEKN7.js.map → -LTYXURUV.js.map} +0 -0
  129. /package/dist/{chunk-7D3YXOZB.js.map → chunk-2P7Y3BT3.js.map} +0 -0
  130. /package/dist/{chunk-GEJLVYIV.js.map → chunk-44Y7SP3W.js.map} +0 -0
  131. /package/dist/{chunk-X323YP65.js.map → chunk-4LOXBT7W.js.map} +0 -0
  132. /package/dist/{chunk-FWVOXMFA.js.map → chunk-6KXAVROI.js.map} +0 -0
  133. /package/dist/{chunk-6EC4PI6I.js.map → chunk-7LEWA5WH.js.map} +0 -0
  134. /package/dist/{chunk-K6Z6LKX4.js.map → chunk-ACMWKNEF.js.map} +0 -0
  135. /package/dist/{chunk-O57FU2GJ.js.map → chunk-AI2YUNVV.js.map} +0 -0
  136. /package/dist/{chunk-H7M6SO2O.js.map → chunk-AL6DVHWS.js.map} +0 -0
  137. /package/dist/{chunk-HATKKA2U.js.map → chunk-C4NF2E7X.js.map} +0 -0
  138. /package/dist/{chunk-H77XXKSA.js.map → chunk-CAAW52SA.js.map} +0 -0
  139. /package/dist/{chunk-EW4RSALL.js.map → chunk-CATJO2L2.js.map} +0 -0
  140. /package/dist/{chunk-NXX3ZNCD.js.map → chunk-EH744WIF.js.map} +0 -0
  141. /package/dist/{chunk-LGJYCCIK.js.map → chunk-GFV5RSHS.js.map} +0 -0
  142. /package/dist/{chunk-PUJKIYSL.js.map → chunk-HYACQOK6.js.map} +0 -0
  143. /package/dist/{chunk-WKWEETPH.js.map → chunk-IM66ER3N.js.map} +0 -0
  144. /package/dist/{chunk-XOIAIDR2.js.map → chunk-JSLRB4XE.js.map} +0 -0
  145. /package/dist/{chunk-ZOMGHI3B.js.map → chunk-KR6UDBIV.js.map} +0 -0
  146. /package/dist/{chunk-W7OSON66.js.map → chunk-L4WWG3U7.js.map} +0 -0
  147. /package/dist/{chunk-QXA6TBIT.js.map → chunk-MYYXPR42.js.map} +0 -0
  148. /package/dist/{chunk-NVYIWJ5U.js.map → chunk-N2Y5LEOQ.js.map} +0 -0
  149. /package/dist/{chunk-KW2ZZ2YM.js.map → chunk-N3LJARDG.js.map} +0 -0
  150. /package/dist/{chunk-2LYNOQQO.js.map → chunk-PZO3WTII.js.map} +0 -0
  151. /package/dist/{chunk-24XMCOWF.js.map → chunk-QIM4I2IO.js.map} +0 -0
  152. /package/dist/{chunk-GEMWP24J.js.map → chunk-SFFX26HF.js.map} +0 -0
  153. /package/dist/{chunk-RSCXIVO4.js.map → chunk-TXYE3JUL.js.map} +0 -0
  154. /package/dist/{chunk-263KNYS6.js.map → chunk-WRZDSWMV.js.map} +0 -0
  155. /package/dist/{chunks-DFHM4S4R.js.map → chunks-EMHL6JYG.js.map} +0 -0
  156. /package/dist/{formula-MF3OTYTH.js.map → formula-4IAJ4J5W.js.map} +0 -0
  157. /package/dist/{formula-TOVULTIT.js.map → formula-NJZUDYQO.js.map} +0 -0
  158. /package/dist/{generator-SH3TOHPH.js.map → generator-GPT76OML.js.map} +0 -0
  159. /package/dist/{generator-SST2TDKE.js.map → generator-MIX4R7HL.js.map} +0 -0
  160. /package/dist/{image-ocr-INZPDSJH.js.map → image-ocr-2ZA6RJB2.js.map} +0 -0
  161. /package/dist/{image-ocr-LJ3WXDKU.js.map → image-ocr-7DKSLHV3.js.map} +0 -0
  162. /package/dist/{memo-DBSP7EDT.js.map → memo-GFUUEHGA.js.map} +0 -0
  163. /package/dist/{model-bundle-PXUYQSHW.js.map → model-bundle-DFIFP2XF.js.map} +0 -0
  164. /package/dist/{models-SBKYVIBF.js.map → models-25SH2DS7.js.map} +0 -0
  165. /package/dist/{parse-worker-v2-LRC5HCT6.js.map → parse-worker-v2-RJ3ED73F.js.map} +0 -0
  166. /package/dist/{parser-ARQ34S4N.js.map → parser-GBYPD4QF.js.map} +0 -0
  167. /package/dist/{parser-OXELKPM7.js.map → parser-NEYOWPAK.js.map} +0 -0
  168. /package/dist/{pdf-ocr-TTLDKJSL.js.map → pdf-ocr-5LHY3NXV.js.map} +0 -0
  169. /package/dist/{pdf-ocr-ZQHLCBSN.js.map → pdf-ocr-N6VQ72SP.js.map} +0 -0
  170. /package/dist/{profile-io-QIFJ3WF3.js.map → profile-io-WCBBMCOR.js.map} +0 -0
  171. /package/dist/{rasterize-EJUDQZTP.js.map → rasterize-GD325A5X.js.map} +0 -0
  172. /package/dist/{redact-doc-6JMEZOGL.js.map → redact-doc-R4F5VYUA.js.map} +0 -0
  173. /package/dist/{render-SV47YGRO.js.map → render-7GV7GKZE.js.map} +0 -0
  174. /package/dist/{rewrite-fallback-QZV4FRPE.js.map → rewrite-fallback-STVHEDFQ.js.map} +0 -0
  175. /package/dist/{seal-Z4E7DZ75.js.map → seal-XTZXAGHU.js.map} +0 -0
  176. /package/dist/{setup-FQ22XI2R.js.map → setup-EG7ZQNBB.js.map} +0 -0
  177. /package/dist/{to-hwpx-3EVHIIRR.js.map → to-hwpx-2UZJV377.js.map} +0 -0
  178. /package/dist/{to-hwpx-BTJOOZAD.js.map → to-hwpx-XURJVKKH.js.map} +0 -0
  179. /package/dist/{visual-GGB2DRCT.js.map → visual-C33QKCQ6.js.map} +0 -0
  180. /package/dist/{watch-CF76OEMZ.js.map → watch-NSVI3VIY.js.map} +0 -0
package/README.md CHANGED
@@ -110,20 +110,20 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
110
110
 
111
111
  ## 검증 결과
112
112
 
113
- **4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·별표·OCR 은 4.24.24 · 2026-10-30, HWP → HWPX 변환은 4.24.26 · 2026-10-31). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
113
+ **4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·별표는 4.24.24 · 2026-10-30, OCR 은 4.24.30 · 2026-10-31, HWP → HWPX 변환은 4.24.29 · 2026-10-31). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
114
114
 
115
115
  | 대상 | 규모 | 결과 |
116
116
  | --- | --- | --- |
117
117
  | HWPX | 2,424문서 · 10,342표 | 표 구조 일치 **10,342/10,342 · 100%** |
118
118
  | HWP 5.x ↔ HWPX | 1,130쌍 · 4,315표 | 짝 문서의 표 구조 일치 **100%** |
119
- | HWP 5.x → HWPX 변환 | 한글 저장 짝 264쌍 (속성 대조 232쌍) | 속성 일치 **99.19%** · 글 **264/264** · 한글 화면 대조 80문서 |
119
+ | HWP 5.x → HWPX 변환 | 한글 저장 짝 264쌍 (속성 대조 232쌍) | 속성 일치 **99.21%** · 완전 일치 **69/232** · 글 **264/264** · 한글 화면 대조 80문서 |
120
120
  | PDF 글 | 744쌍 | 글자 재현율 **99.883%** · 정확도 **99.678%** · 읽기 순서 **99.312%** · 어절 F1 **99.067%** |
121
121
  | PDF 표 | 708쌍 · 2,331표 | 표 탐지 **99.83%** · 구조 일치 **98.24%** · 칸 F1 **0.9919** |
122
122
  | HWPX 재조판 | 다중줄 25,187문단 (12개 폴더) | 모든 줄 시작 일치 **24,941/25,187 · 99.02%** |
123
123
  | PDF 중첩표 (텍스트층) | 29문서 · 101표 | 구조·칸 내용 **101/101 · 100%** |
124
124
  | 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **343/346 · 99.13%** |
125
125
  | PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
126
- | OCR | 53문서 · 102쪽 · 67표 | CER **0.0244** · 글자 재현율 **99.32%** · 표 구조 일치 **34/67** |
126
+ | OCR | 53문서 · 102쪽 · 66표 | CER **0.0237** · 글자 재현율 **99.32%** · 표 구조 일치 **34/66** |
127
127
  | opendataloader-bench | PDF 200문서 | 종합 기본값 **0.964** · OCR 끔 **0.939** |
128
128
  | HWPX 렌더 배치 | 한컴 PDF 짝 1,565문서(쪽 수 일치 1,508) · 글 조각 111,480 · 그림 4,300 | 글 위치(±1.5pt) **106,904 · 95.9%** · 그림 위치(±2pt) **4,213 · 98.0%** |
129
129
 
@@ -131,15 +131,15 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
131
131
 
132
132
  ## 최근 업데이트
133
133
 
134
- 최신 배포: **[4.24.28](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.28)** · 2026-10-31
134
+ 최신 배포: **[4.24.30](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.30)** · 2026-10-31
135
135
 
136
136
  | 버전 | 주요 변경 | 수치 변화 |
137
137
  | --- | --- | --- |
138
+ | 4.24.30 | 파서: 채운 누름틀·하이퍼링크가 든 문단의 굵게·밑줄 표지(보도자료 본문 누름틀 강조가 사라지던 것, HWPX·HWP) · PDF 표: 몇 칸에만 걸린 한컴 클립이 선 표 칸을 빼앗던 것 · to-hwpx: 그리기 선 투명도 | OCR 표 정답의 가짜 표가 빠져 34/67 → **34/66**·CER 0.0244 → **0.0237** · patch 굵은 낱말 넣기 잔차 HWPX 80 → **60**/489 · 벤치 지표 그대로 |
139
+ | 4.24.29 | to-hwpx: 한글이 저장한 꼴로 — 문단 글 방향(textDir)·같은 문단 모양 합치기·홀수 값 여백·탭의 글자 단위·OLE 이름·메모 확장·옛 판 테두리 0번 등 · patch: 새 글에 표시한 강조(원문에 없던 서식도), 한 문단 여러 곳 고칠 때 사이 글 서식 보존, HTML 표 칸 강조 표지가 글자로 박히던 것, HWP 칸 안 중첩 표 칸 · HWP 파서: 위첨자가 든 굵은 문단 강조 | 변환 속성 일치 0.99194 → **0.99214** · 완전 일치 14 → **69**/232 · patch 굵은 낱말 넣기 잔차 HWPX 241 → **121**/265 · HWP 표 칸 끝 붙이기 83 → **93**/93 · HWP·HWPX parse 대조 다른 단위 118 → **98** · 벤치 지표 그대로 |
138
140
  | 4.24.28 | 메모 읽기·달기(`memos`·`kordoc memo`·MCP `add_memo`, #180) · patch: 굵은 글·위첨자 끝에 붙인 글이 서식을 물려받던 것(HWP·HWPX), 글머리표 문단(#179), HWPX 탭·엔티티·PUA 문단과 HWP PUA·강제 줄바꿈 문단·표 칸은 바뀐 자리만 · to-hwpx: 원·네모 겹치기 번호(#178) · HWP 파서: 굵게·기울임·취소선·밑줄 표지 | patch 검증 잔차 HWPX 45 → **3**/540 · HWP 24 → **4**/140·37 → **0**/605(파서 강조 반영 뒤 기준) · HWP 대체본 원본 서식 90 → **94**/98 · HWP·HWPX parse 대조 다른 단위 390 → **118** · 벤치 지표 그대로 |
139
141
  | 4.24.27 | 서식 채우기·도장(`fill_form`·`place_seal`): HWP 5.x 서식도 원본 서식 그대로 · patch: HWP 대체본을 원본 서식으로(서식 그대로 바꾼 HWPX 에 반영), 누름틀 자리에 쓴 값은 누름틀에 채움(HWP·HWPX), 굵은 칸 GFM 표·여러 줄 1열 표·같은 글 문단 짝짓기 | patch 편집 반영 HWPX 539 → **540**/540 · 표 칸 465 → **467**/467 · HWP 132 → **140**/140 · HWP 대체본 원본 서식 0 → **90**/98 · 벤치 지표 그대로 |
140
142
  | 4.24.26 | HWP → HWPX 변환(`kordoc to-hwpx`·MCP `convert_to_hwpx`): HWP 5.x 를 서식 그대로 — 바탕쪽·표·그림·도형·연결 글상자·수식·필드·메모·양식 개체·차트까지 · patch(HWP): 탭·필드가 든 문단도 바뀐 글자만 · 마크다운: 목록 항목 첫머리 표지 이스케이프 | 변환 속성 일치 **0.992** · 글 **264/264**(한글 저장 짝) · 한글 화면 대조 80문서 · patch HWP 123 → **132**/140 · 벤치 지표 그대로 |
141
- | 4.24.25 | patch: 강제 줄바꿈 문단 수정, 좌표가 어긋난 자리(틀 표·제목 상자·첨자 문단)를 원문 글로 찾아 고침, 남은 편집은 원본 서식 대체본(`.rewrite.hwpx`) · 암호 HWPX 렌더 | patch 편집 반영(코퍼스 실험) HWPX 487 → **539**/540 · 표 칸 455 → **465**/467 · HWP 111 → **123**/140 · 벤치 지표 그대로 |
142
- | 4.24.24 | OCR 표: 머리 띠 안 짧은 칸 구분선 · 렌더: 칸을 벗어나는 개체, 칸 안 줄 정보 없는 문단 뒤 캐시 문단, 한 문단의 겹침 금지 어울림 표 쌓기·쪽 넘김 · COM 폴백 임시 폴더 정리(#177) | OCR 표 구조 일치 33 → **34**/67 · 렌더 쪽 수 일치 1,507 → **1,508** · 글 위치 106,818 → **106,904** · 그림 4,169 → **4,213**(문서별 하락 0) · 측정 예외 1건(변경 이력) · 나머지 지표 그대로 |
143
143
 
144
144
  이전 버전과 상세 내용은 [변경 이력](CHANGELOG.md)에 있습니다.
145
145
 
@@ -53,26 +53,26 @@ import {
53
53
  usesGaejosikMunche,
54
54
  usesLogicStructure,
55
55
  validateHwpx
56
- } from "./chunk-KW2ZZ2YM.js";
56
+ } from "./chunk-N3LJARDG.js";
57
57
  import {
58
58
  blocksToPages
59
- } from "./chunk-263KNYS6.js";
59
+ } from "./chunk-WRZDSWMV.js";
60
60
  import {
61
61
  extractClickHereFields,
62
62
  patchHwp,
63
63
  patchHwpx
64
- } from "./chunk-Z35AEUSH.js";
64
+ } from "./chunk-MTOZEYOT.js";
65
65
  import {
66
66
  addMemoHwpx
67
- } from "./chunk-WKWEETPH.js";
67
+ } from "./chunk-IM66ER3N.js";
68
68
  import {
69
69
  placeSealHwpx
70
- } from "./chunk-RSCXIVO4.js";
71
- import "./chunk-QXA6TBIT.js";
70
+ } from "./chunk-TXYE3JUL.js";
71
+ import "./chunk-MYYXPR42.js";
72
72
  import {
73
73
  convertToHwpx,
74
74
  hwpToHwpx
75
- } from "./chunk-5NALEQEL.js";
75
+ } from "./chunk-VOF2VCUF.js";
76
76
  import {
77
77
  DEFAULT_REDACT_RULES,
78
78
  redactMarkdown,
@@ -80,7 +80,7 @@ import {
80
80
  } from "./chunk-3WSNLH4B.js";
81
81
  import {
82
82
  blocksToChunks
83
- } from "./chunk-GEJLVYIV.js";
83
+ } from "./chunk-44Y7SP3W.js";
84
84
  import {
85
85
  blocksToPdf,
86
86
  extractRenderedRegions,
@@ -91,13 +91,13 @@ import {
91
91
  renderHwp5Pages,
92
92
  renderHwpxToSvg,
93
93
  renderSceneToHtml
94
- } from "./chunk-PUJKIYSL.js";
95
- import "./chunk-6EC4PI6I.js";
96
- import "./chunk-2LYNOQQO.js";
97
- import "./chunk-KNJFLPCP.js";
94
+ } from "./chunk-HYACQOK6.js";
95
+ import "./chunk-7LEWA5WH.js";
96
+ import "./chunk-PZO3WTII.js";
97
+ import "./chunk-FICCE4LN.js";
98
98
  import "./chunk-VKVDMH7X.js";
99
- import "./chunk-L2E7FKSR.js";
100
- import "./chunk-24XMCOWF.js";
99
+ import "./chunk-WW47MOC6.js";
100
+ import "./chunk-QIM4I2IO.js";
101
101
  import "./chunk-VQFA55IC.js";
102
102
  import {
103
103
  detectFormat,
@@ -119,7 +119,7 @@ import {
119
119
  markdownToHwpx,
120
120
  normalizeGongmunPreset,
121
121
  placeTotalRow
122
- } from "./chunk-PNW4B5W5.js";
122
+ } from "./chunk-XNCPKOIP.js";
123
123
  import {
124
124
  ValueCursor,
125
125
  applySplices,
@@ -141,20 +141,20 @@ import {
141
141
  measureTextWidth,
142
142
  simulateWrap,
143
143
  simulateWrapKeepWord
144
- } from "./chunk-EW4RSALL.js";
145
- import "./chunk-NXX3ZNCD.js";
144
+ } from "./chunk-CATJO2L2.js";
145
+ import "./chunk-EH744WIF.js";
146
146
  import "./chunk-OFVHQ2TZ.js";
147
147
  import "./chunk-WFKFG2RT.js";
148
- import "./chunk-GEMWP24J.js";
148
+ import "./chunk-SFFX26HF.js";
149
149
  import {
150
150
  blocksToMarkdown,
151
151
  flattenLayoutTables,
152
152
  hasStructuredCellContent
153
- } from "./chunk-NVYIWJ5U.js";
153
+ } from "./chunk-N2Y5LEOQ.js";
154
154
  import "./chunk-KFF47XZ7.js";
155
155
  import {
156
156
  VERSION
157
- } from "./chunk-7D3YXOZB.js";
157
+ } from "./chunk-2P7Y3BT3.js";
158
158
  export {
159
159
  AGENCY_COMMON_NAME,
160
160
  BUILTIN_TEMPLATES,
@@ -268,4 +268,4 @@ export {
268
268
  usesLogicStructure,
269
269
  validateHwpx
270
270
  };
271
- //# sourceMappingURL=-R5BXEKN7.js.map
271
+ //# sourceMappingURL=-LTYXURUV.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/utils.ts
4
4
  import { format } from "util";
5
- var VERSION = true ? "4.24.28" : "0.0.0-dev";
5
+ var VERSION = true ? "4.24.30" : "0.0.0-dev";
6
6
  function toArrayBuffer(buf) {
7
7
  if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
8
8
  return buf.buffer;
@@ -172,4 +172,4 @@ export {
172
172
  classifyError,
173
173
  partExtension
174
174
  };
175
- //# sourceMappingURL=chunk-7D3YXOZB.js.map
175
+ //# sourceMappingURL=chunk-2P7Y3BT3.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  assignTableIds,
4
4
  blocksToMarkdown
5
- } from "./chunk-NVYIWJ5U.js";
5
+ } from "./chunk-N2Y5LEOQ.js";
6
6
 
7
7
  // src/chunks.ts
8
8
  var LIST_MARKER_RE = /^(?:[□■◇◆○◎●◦ㅇ•▪▸▶※-]|\d{1,3}[.)]|[가나다라마바사아자차카타파하][.)]|\([가나다라마바사아자차카타파하0-9]{1,3}\)|[①-⑳㉮-㉻㈎-㈛])\s/;
@@ -82,4 +82,4 @@ function blocksToChunks(blocks, options) {
82
82
  export {
83
83
  blocksToChunks
84
84
  };
85
- //# sourceMappingURL=chunk-GEJLVYIV.js.map
85
+ //# sourceMappingURL=chunk-44Y7SP3W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  blocksToMarkdown
3
- } from "./chunk-O57FU2GJ.js";
3
+ } from "./chunk-AI2YUNVV.js";
4
4
 
5
5
  // src/page-markdown.ts
6
6
  function blocksToPages(blocks, render = blocksToMarkdown) {
@@ -28,4 +28,4 @@ function blocksToPages(blocks, render = blocksToMarkdown) {
28
28
  export {
29
29
  blocksToPages
30
30
  };
31
- //# sourceMappingURL=chunk-X323YP65.js.map
31
+ //# sourceMappingURL=chunk-4LOXBT7W.js.map