kordoc 4.24.16 → 4.24.17

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 (133) hide show
  1. package/README.md +4 -4
  2. package/dist/{-ZKOPHIGY.js → -EM3WKYYH.js} +12 -12
  3. package/dist/{chunk-QJA3KGRP.js → chunk-2YCBFGMT.js} +2 -2
  4. package/dist/{chunk-NUQ5B2ZM.js → chunk-3W4ZOEL3.js} +3 -3
  5. package/dist/{chunk-X2SPQOI7.cjs → chunk-4JQO5D7Y.cjs} +261 -98
  6. package/dist/chunk-4JQO5D7Y.cjs.map +1 -0
  7. package/dist/{chunk-2UXGDAWQ.js → chunk-4LGYS5MV.js} +2 -2
  8. package/dist/{chunk-SR6DJBPM.cjs → chunk-6SITJI2W.cjs} +67 -29
  9. package/dist/chunk-6SITJI2W.cjs.map +1 -0
  10. package/dist/{chunk-DH564VPR.js → chunk-7X4BNPDR.js} +2 -2
  11. package/dist/{chunk-DH564VPR.js.map → chunk-7X4BNPDR.js.map} +1 -1
  12. package/dist/{chunk-NVOB6OHS.cjs → chunk-AYYPVST4.cjs} +2 -2
  13. package/dist/{chunk-NVOB6OHS.cjs.map → chunk-AYYPVST4.cjs.map} +1 -1
  14. package/dist/{chunk-FK7KGS5D.js → chunk-BX7VJQ4K.js} +2 -2
  15. package/dist/{chunk-S2VWNC2W.js → chunk-CQ2SQZU5.js} +3 -3
  16. package/dist/{chunk-6KELCESN.js → chunk-DG3BK3CA.js} +45 -7
  17. package/dist/chunk-DG3BK3CA.js.map +1 -0
  18. package/dist/{chunk-BHY2QAPM.js → chunk-DQDDQ7IH.js} +12 -12
  19. package/dist/{chunk-K3OLWLXH.js → chunk-FKAXXCRA.js} +4 -4
  20. package/dist/{chunk-K3OLWLXH.js.map → chunk-FKAXXCRA.js.map} +1 -1
  21. package/dist/{chunk-V5R3PJQH.js → chunk-HX556OPI.js} +2 -2
  22. package/dist/{chunk-GPZMU2CM.cjs → chunk-I4QRLAX7.cjs} +3 -3
  23. package/dist/{chunk-GPZMU2CM.cjs.map → chunk-I4QRLAX7.cjs.map} +1 -1
  24. package/dist/{chunk-JS5CL2ZI.js → chunk-ILPVBF4G.js} +179 -16
  25. package/dist/chunk-ILPVBF4G.js.map +1 -0
  26. package/dist/{chunk-BYMPPVT3.js → chunk-IQJKLIJV.js} +3 -3
  27. package/dist/chunk-IQJKLIJV.js.map +1 -0
  28. package/dist/{chunk-CCH6BUNI.cjs → chunk-ISHFQDFZ.cjs} +8 -8
  29. package/dist/{chunk-CCH6BUNI.cjs.map → chunk-ISHFQDFZ.cjs.map} +1 -1
  30. package/dist/{chunk-LPNWTWOQ.js → chunk-JLA752YE.js} +2 -2
  31. package/dist/{chunk-3TXAIEXL.js → chunk-KUTKDE4Z.js} +180 -17
  32. package/dist/chunk-KUTKDE4Z.js.map +1 -0
  33. package/dist/{chunk-UCEGWDWX.js → chunk-MHZLOPOO.js} +6 -6
  34. package/dist/{chunk-6PPVAQ2N.js → chunk-NIKO5MNS.js} +2 -2
  35. package/dist/{chunk-J5M5OW4S.js → chunk-O7YE4N45.js} +12 -3
  36. package/dist/chunk-O7YE4N45.js.map +1 -0
  37. package/dist/{chunk-GYVSGOQW.js → chunk-OOD7R4UR.js} +2 -2
  38. package/dist/{chunk-NS2F4DXC.cjs → chunk-PQR5Q2CN.cjs} +3 -3
  39. package/dist/{chunk-NS2F4DXC.cjs.map → chunk-PQR5Q2CN.cjs.map} +1 -1
  40. package/dist/{chunk-QOMLSZLM.js → chunk-QEOKQ5XD.js} +2 -2
  41. package/dist/{chunk-F3VIVCIF.js → chunk-SWEGYVUL.js} +2 -2
  42. package/dist/{chunk-TSCQDCAR.js → chunk-URA7A4PT.js} +2 -2
  43. package/dist/{chunk-VAMCM435.js → chunk-X2AVHAPM.js} +2 -2
  44. package/dist/{chunk-5Y7E5VTW.js → chunk-XNEITV3L.js} +2 -2
  45. package/dist/{chunk-6K2SYTNJ.js → chunk-Y43Y4KJC.js} +35 -5
  46. package/dist/chunk-Y43Y4KJC.js.map +1 -0
  47. package/dist/chunks-KB7TWL43.js +10 -0
  48. package/dist/cli.js +33 -33
  49. package/dist/cli.js.map +1 -1
  50. package/dist/{formula-KZWH4YUD.cjs → formula-AAVTR32F.cjs} +9 -9
  51. package/dist/{formula-KZWH4YUD.cjs.map → formula-AAVTR32F.cjs.map} +1 -1
  52. package/dist/{formula-4C7ADOLE.js → formula-BHBMDZLT.js} +4 -4
  53. package/dist/{formula-4Y7UWTEG.js → formula-XOF7RB5O.js} +3 -3
  54. package/dist/{image-ocr-AEX2L326.js → image-ocr-FUDCRQ77.js} +10 -10
  55. package/dist/{image-ocr-ASLUPAQG.js → image-ocr-GQFTBSR5.js} +6 -6
  56. package/dist/{image-ocr-GT3NILUJ.cjs → image-ocr-KRKCFP2H.cjs} +17 -17
  57. package/dist/{image-ocr-GT3NILUJ.cjs.map → image-ocr-KRKCFP2H.cjs.map} +1 -1
  58. package/dist/index.cjs +360 -360
  59. package/dist/index.d.cts +3 -2
  60. package/dist/index.d.ts +3 -2
  61. package/dist/index.js +6 -6
  62. package/dist/mcp.js +25 -25
  63. package/dist/mcp.js.map +1 -1
  64. package/dist/{model-bundle-2TXD77HN.js → model-bundle-636BXOZX.js} +5 -5
  65. package/dist/{models-WRJKLZA6.js → models-X7KSG5YH.js} +7 -5
  66. package/dist/{parse-worker-v2-C2GR62SO.js → parse-worker-v2-K4DOWRRE.js} +14 -14
  67. package/dist/parse-worker-v2-K4DOWRRE.js.map +1 -0
  68. package/dist/{parser-5R34V6PS.cjs → parser-JG5TDHTN.cjs} +159 -159
  69. package/dist/{parser-5R34V6PS.cjs.map → parser-JG5TDHTN.cjs.map} +1 -1
  70. package/dist/{parser-GFZILOKI.js → parser-TKVE62OM.js} +13 -13
  71. package/dist/{parser-LU7BIHXD.js → parser-ZS6ZYKFT.js} +9 -9
  72. package/dist/pdf-ocr-JJTEVY6C.cjs +35 -0
  73. package/dist/{pdf-ocr-QRBPEPOZ.cjs.map → pdf-ocr-JJTEVY6C.cjs.map} +1 -1
  74. package/dist/{pdf-ocr-VNK6UIS2.js → pdf-ocr-PJO3UIZQ.js} +10 -10
  75. package/dist/{pdf-ocr-U2ZRNQD4.js → pdf-ocr-R4BKOKOV.js} +6 -6
  76. package/dist/{profile-io-J3IWFBCM.js → profile-io-6DC7KBGZ.js} +3 -3
  77. package/dist/{rasterize-23MJWOUQ.js → rasterize-CXMAQVBK.js} +3 -3
  78. package/dist/{redact-doc-GGCEGT74.js → redact-doc-3GGPUJT7.js} +12 -12
  79. package/dist/{render-M2UAFQSI.js → render-BARUM5VX.js} +7 -7
  80. package/dist/seal-NR6HNFHD.js +10 -0
  81. package/dist/{setup-D7JWID23.js → setup-ZTF5QCXL.js} +3 -3
  82. package/dist/visual-H5Z72EB2.js +21 -0
  83. package/dist/{watch-E2XCUIA5.js → watch-WJWZLQDF.js} +13 -13
  84. package/package.json +1 -1
  85. package/dist/chunk-3TXAIEXL.js.map +0 -1
  86. package/dist/chunk-6K2SYTNJ.js.map +0 -1
  87. package/dist/chunk-6KELCESN.js.map +0 -1
  88. package/dist/chunk-BYMPPVT3.js.map +0 -1
  89. package/dist/chunk-J5M5OW4S.js.map +0 -1
  90. package/dist/chunk-JS5CL2ZI.js.map +0 -1
  91. package/dist/chunk-SR6DJBPM.cjs.map +0 -1
  92. package/dist/chunk-X2SPQOI7.cjs.map +0 -1
  93. package/dist/chunks-BHTYFFI2.js +0 -10
  94. package/dist/parse-worker-v2-C2GR62SO.js.map +0 -1
  95. package/dist/pdf-ocr-QRBPEPOZ.cjs +0 -35
  96. package/dist/seal-EHZTTMNE.js +0 -10
  97. package/dist/visual-2ZLXZ5NN.js +0 -21
  98. /package/dist/{-ZKOPHIGY.js.map → -EM3WKYYH.js.map} +0 -0
  99. /package/dist/{chunk-QJA3KGRP.js.map → chunk-2YCBFGMT.js.map} +0 -0
  100. /package/dist/{chunk-NUQ5B2ZM.js.map → chunk-3W4ZOEL3.js.map} +0 -0
  101. /package/dist/{chunk-2UXGDAWQ.js.map → chunk-4LGYS5MV.js.map} +0 -0
  102. /package/dist/{chunk-FK7KGS5D.js.map → chunk-BX7VJQ4K.js.map} +0 -0
  103. /package/dist/{chunk-S2VWNC2W.js.map → chunk-CQ2SQZU5.js.map} +0 -0
  104. /package/dist/{chunk-BHY2QAPM.js.map → chunk-DQDDQ7IH.js.map} +0 -0
  105. /package/dist/{chunk-V5R3PJQH.js.map → chunk-HX556OPI.js.map} +0 -0
  106. /package/dist/{chunk-LPNWTWOQ.js.map → chunk-JLA752YE.js.map} +0 -0
  107. /package/dist/{chunk-UCEGWDWX.js.map → chunk-MHZLOPOO.js.map} +0 -0
  108. /package/dist/{chunk-6PPVAQ2N.js.map → chunk-NIKO5MNS.js.map} +0 -0
  109. /package/dist/{chunk-GYVSGOQW.js.map → chunk-OOD7R4UR.js.map} +0 -0
  110. /package/dist/{chunk-QOMLSZLM.js.map → chunk-QEOKQ5XD.js.map} +0 -0
  111. /package/dist/{chunk-F3VIVCIF.js.map → chunk-SWEGYVUL.js.map} +0 -0
  112. /package/dist/{chunk-TSCQDCAR.js.map → chunk-URA7A4PT.js.map} +0 -0
  113. /package/dist/{chunk-VAMCM435.js.map → chunk-X2AVHAPM.js.map} +0 -0
  114. /package/dist/{chunk-5Y7E5VTW.js.map → chunk-XNEITV3L.js.map} +0 -0
  115. /package/dist/{chunks-BHTYFFI2.js.map → chunks-KB7TWL43.js.map} +0 -0
  116. /package/dist/{formula-4C7ADOLE.js.map → formula-BHBMDZLT.js.map} +0 -0
  117. /package/dist/{formula-4Y7UWTEG.js.map → formula-XOF7RB5O.js.map} +0 -0
  118. /package/dist/{image-ocr-AEX2L326.js.map → image-ocr-FUDCRQ77.js.map} +0 -0
  119. /package/dist/{image-ocr-ASLUPAQG.js.map → image-ocr-GQFTBSR5.js.map} +0 -0
  120. /package/dist/{model-bundle-2TXD77HN.js.map → model-bundle-636BXOZX.js.map} +0 -0
  121. /package/dist/{models-WRJKLZA6.js.map → models-X7KSG5YH.js.map} +0 -0
  122. /package/dist/{parser-GFZILOKI.js.map → parser-TKVE62OM.js.map} +0 -0
  123. /package/dist/{parser-LU7BIHXD.js.map → parser-ZS6ZYKFT.js.map} +0 -0
  124. /package/dist/{pdf-ocr-U2ZRNQD4.js.map → pdf-ocr-PJO3UIZQ.js.map} +0 -0
  125. /package/dist/{pdf-ocr-VNK6UIS2.js.map → pdf-ocr-R4BKOKOV.js.map} +0 -0
  126. /package/dist/{profile-io-J3IWFBCM.js.map → profile-io-6DC7KBGZ.js.map} +0 -0
  127. /package/dist/{rasterize-23MJWOUQ.js.map → rasterize-CXMAQVBK.js.map} +0 -0
  128. /package/dist/{redact-doc-GGCEGT74.js.map → redact-doc-3GGPUJT7.js.map} +0 -0
  129. /package/dist/{render-M2UAFQSI.js.map → render-BARUM5VX.js.map} +0 -0
  130. /package/dist/{seal-EHZTTMNE.js.map → seal-NR6HNFHD.js.map} +0 -0
  131. /package/dist/{setup-D7JWID23.js.map → setup-ZTF5QCXL.js.map} +0 -0
  132. /package/dist/{visual-2ZLXZ5NN.js.map → visual-H5Z72EB2.js.map} +0 -0
  133. /package/dist/{watch-E2XCUIA5.js.map → watch-WJWZLQDF.js.map} +0 -0
package/README.md CHANGED
@@ -108,7 +108,7 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
108
108
 
109
109
  ## 검증 결과
110
110
 
111
- **4.22.14 · 2026-10-19 검증**(렌더 배치는 4.24.14, PDF 글·표·OCR 은 4.24.16 · 2026-10-28). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
111
+ **4.22.14 · 2026-10-19 검증**(렌더 배치는 4.24.14, PDF 글·표·OCR 은 4.24.17 · 2026-10-29). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
112
112
 
113
113
  | 대상 | 규모 | 결과 |
114
114
  | --- | --- | --- |
@@ -120,7 +120,7 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
120
120
  | PDF 중첩표 (텍스트층) | 29문서 · 101표 | 구조·칸 내용 **101/101 · 100%** |
121
121
  | 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **342/346 · 98.84%** |
122
122
  | PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
123
- | OCR | 53문서 · 102쪽 · 67표 | CER **0.0250** · 글자 재현율 **99.27%** · 표 구조 일치 **26/67** |
123
+ | OCR | 53문서 · 102쪽 · 67표 | CER **0.0244** · 글자 재현율 **99.32%** · 표 구조 일치 **26/67** |
124
124
  | opendataloader-bench | PDF 200문서 | 종합 기본값 **0.964** · OCR 끔 **0.939** |
125
125
  | HWPX 렌더 배치 (4.24.14) | 한컴 PDF 짝 · 글 조각 90,840 · 그림 4,107 | 글 위치(±1.5pt) **87,643 · 96.5%** · 그림 위치(±2pt) **4,019 · 97.9%** |
126
126
 
@@ -128,15 +128,15 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
128
128
 
129
129
  ## 최근 업데이트
130
130
 
131
- 최신 배포: **[4.24.16](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.16)** · 2026-10-28
131
+ 최신 배포: **[4.24.17](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.17)** · 2026-10-29
132
132
 
133
133
  | 버전 | 주요 변경 | 수치 변화 |
134
134
  | --- | --- | --- |
135
+ | 4.24.17 | OCR: 검출기가 놓친 목차 줄 머리 장 번호·리더 뒤 쪽 번호, 두 줄로 잡혀 버려진 표 칸, 기울인 판의 그림자 글머리 ❐·○와 목차 ◎, 괄호 짝·거북등 괄호 〔〕·평행 기호 ∥, 리더가 끊겨 갈린 목차 줄 · 선택 검출 모델 `ocrDet: "medium"`(#176) | OCR CER 0.0250 → **0.0244** · 글자 재현율 99.27% → **99.32%** · 정밀도 99.54% → **99.56%** · 열화 입력 9종 모두 개선(원본 0.0394 → **0.0386**, 흐림 0.0550 → **0.0522**, 스캔 0.0693 → **0.0668**) |
135
136
  | 4.24.16 | OCR: 짧은 목차 리더 ··, 과제 번호의 Ⅲ(파·피로 읽음)·네모 번호 앞 [ ·붙임표가 붙은 원문자 ①, 한글 뒤 로마 숫자 획 수(Ⅰ↔Ⅱ), 칸 테두리 앞·빈칸 긴 서식 칸 끝 닫는 괄호 | OCR CER 0.0255 → **0.0250** · 글자 재현율 99.23% → **99.27%** · 정밀도 99.53% → **99.54%** · 열화 입력 8종 개선(원본 0.0397 → **0.0394**, 스캔만 0.0692 → 0.0693) |
136
137
  | 4.24.15 | OCR: 검출기가 놓친 서식 빈칸 네모 □□-□□□·목차 줄 머리 대시·줄 끝 홑 쪽 번호, 큰 글머리 ■, 리터 ℓ, 작은 고리 。, 윗줄에 묻힌 줄 머리 가운뎃점, 빗금 칸 환각 · PDF: 줄 간격 넓은 중·일문 두 줄 묶음 문단 잇기 | OCR CER 0.0260 → **0.0255** · 글자 재현율 99.19% → **99.23%** · 열화 입력 8종 개선(원본 0.0405 → **0.0397**, 잡음만 0.0485 → 0.0486) · PDF 어절 F1 99.066% → **99.067%** |
137
138
  | 4.24.14 | 렌더: 칸 간격(`cellSpacing`) 표의 칸 자리 · OCR: 공백·따옴표로 읽은 홑낫표 「, 검출기가 놓친 쪽 번호, 라틴 약어 앞·C 로 읽은 줄 머리 ○, 고리만 든 칸 ○, 마름모 글머리 ◆·◇·◈, 서식 칸 끝 닫는 괄호 | 렌더 글 위치 87,577 → **87,643** · OCR CER 0.0263 → **0.0260** · 열화 입력 9종 모두 개선(원본 0.0409 → **0.0405**) |
138
139
  | 4.24.13 | 기관팩(`.kpack`): 기관 문서 몇 건으로 서식 묶음을 만들어 그 서식대로 새 문서 · OCR: 선 없는 표 칸 순서·넓게 벌린 균등배분, 글자 상자 안 획 조각, 줄 머리 □, 기간 날짜 끝점, 전화 기호 ☎ · PDF·HWP: 한컴 소프트 하이픈 붙임표(증감 칸 음수 부호) · patch 추가 문단 강조 서식·렌더 자란 표 겹침(#175) | 기관팩 처음 보는 문서 재현 서울 68.3% → **74.3%** · 광양 77.1% → **94.5%** · OCR CER 0.0281 → **0.0263** · 열화 입력 9종 모두 개선(원본 0.0429 → **0.0409**) |
139
- | 4.24.12 | OCR: 조직도 상자 연결선을 괘선으로(과·팀 상자 열 단위 읽기), 요일 앞 날짜 마침표, 목차 리더 잡티, 화살표 모양 ⇨·➔·▶, 쉼표로 읽은 」 | OCR CER 0.0306 → **0.0281** · 글자 재현율 99.12% → **99.14%** · 열화 입력 9종 모두 개선(원본 0.0475 → **0.0429**) |
140
140
 
141
141
  이전 버전과 상세 내용은 [변경 이력](CHANGELOG.md)에 있습니다.
142
142
 
@@ -64,10 +64,10 @@ import {
64
64
  usesGaejosikMunche,
65
65
  usesLogicStructure,
66
66
  validateHwpx
67
- } from "./chunk-BHY2QAPM.js";
67
+ } from "./chunk-DQDDQ7IH.js";
68
68
  import {
69
69
  blocksToChunks
70
- } from "./chunk-2UXGDAWQ.js";
70
+ } from "./chunk-4LGYS5MV.js";
71
71
  import {
72
72
  SPACE_EM_FIXED,
73
73
  SPACE_EM_FONT,
@@ -92,20 +92,20 @@ import {
92
92
  renderSceneToHtml,
93
93
  simulateWrap,
94
94
  simulateWrapKeepWord
95
- } from "./chunk-UCEGWDWX.js";
96
- import "./chunk-F3VIVCIF.js";
95
+ } from "./chunk-MHZLOPOO.js";
96
+ import "./chunk-SWEGYVUL.js";
97
97
  import {
98
98
  blocksToPages
99
- } from "./chunk-FK7KGS5D.js";
99
+ } from "./chunk-BX7VJQ4K.js";
100
100
  import "./chunk-VKVDMH7X.js";
101
101
  import "./chunk-VQFA55IC.js";
102
- import "./chunk-BYMPPVT3.js";
103
- import "./chunk-DH564VPR.js";
102
+ import "./chunk-IQJKLIJV.js";
103
+ import "./chunk-7X4BNPDR.js";
104
104
  import {
105
105
  blocksToMarkdown,
106
106
  flattenLayoutTables,
107
107
  hasStructuredCellContent
108
- } from "./chunk-QOMLSZLM.js";
108
+ } from "./chunk-QEOKQ5XD.js";
109
109
  import {
110
110
  ValueCursor,
111
111
  applySplices,
@@ -119,11 +119,11 @@ import {
119
119
  isLabelCell,
120
120
  placeSealHwpx,
121
121
  scanSectionXml
122
- } from "./chunk-S2VWNC2W.js";
123
- import "./chunk-TSCQDCAR.js";
122
+ } from "./chunk-CQ2SQZU5.js";
123
+ import "./chunk-URA7A4PT.js";
124
124
  import {
125
125
  VERSION
126
- } from "./chunk-6PPVAQ2N.js";
126
+ } from "./chunk-NIKO5MNS.js";
127
127
  import {
128
128
  DEFAULT_REDACT_RULES,
129
129
  redactMarkdown,
@@ -239,4 +239,4 @@ export {
239
239
  usesLogicStructure,
240
240
  validateHwpx
241
241
  };
242
- //# sourceMappingURL=-ZKOPHIGY.js.map
242
+ //# sourceMappingURL=-EM3WKYYH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  blocksToMarkdown
3
- } from "./chunk-K3OLWLXH.js";
3
+ } from "./chunk-FKAXXCRA.js";
4
4
 
5
5
  // src/image/transcode.ts
6
6
  import { deflateSync } from "zlib";
@@ -168,4 +168,4 @@ export {
168
168
  inlineImagesIntoMarkdown,
169
169
  blocksToPages
170
170
  };
171
- //# sourceMappingURL=chunk-QJA3KGRP.js.map
171
+ //# sourceMappingURL=chunk-2YCBFGMT.js.map
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  parse
4
- } from "./chunk-BHY2QAPM.js";
4
+ } from "./chunk-DQDDQ7IH.js";
5
5
  import {
6
6
  classifyError,
7
7
  sanitizeError,
8
8
  toArrayBuffer
9
- } from "./chunk-6PPVAQ2N.js";
9
+ } from "./chunk-NIKO5MNS.js";
10
10
 
11
11
  // src/cli/worker-parse.ts
12
12
  import { readFileSync, statSync } from "fs";
@@ -26,4 +26,4 @@ async function parseWorkerFile(absPath, options) {
26
26
  export {
27
27
  parseWorkerFile
28
28
  };
29
- //# sourceMappingURL=chunk-NUQ5B2ZM.js.map
29
+ //# sourceMappingURL=chunk-3W4ZOEL3.js.map