kordoc 4.24.6 → 4.24.8
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.
- package/README.md +7 -7
- package/dist/{-7J7Y3XPH.js → -TLCDUU22.js} +11 -11
- package/dist/{chunk-TZVVK5MI.js → chunk-5MQG3GJI.js} +2 -2
- package/dist/{chunk-JIU7E7Z6.cjs → chunk-73MRAQXA.cjs} +1098 -209
- package/dist/chunk-73MRAQXA.cjs.map +1 -0
- package/dist/{chunk-ISTIOEIL.cjs → chunk-7F35EPMM.cjs} +3 -3
- package/dist/{chunk-ISTIOEIL.cjs.map → chunk-7F35EPMM.cjs.map} +1 -1
- package/dist/{chunk-GI5LWQ3S.js → chunk-7JUF6G6Z.js} +2 -2
- package/dist/{chunk-BBKRJE57.js → chunk-7XPTKW76.js} +2 -2
- package/dist/{chunk-XM2Y4DB5.js → chunk-BJABLQMB.js} +2 -2
- package/dist/{chunk-2JDVPQ33.cjs → chunk-C3BOYTY5.cjs} +2 -2
- package/dist/{chunk-2JDVPQ33.cjs.map → chunk-C3BOYTY5.cjs.map} +1 -1
- package/dist/{chunk-EVBSSU3N.js → chunk-CB57N2MG.js} +2 -2
- package/dist/{chunk-WNOWRBM4.js → chunk-D3EHIHYN.js} +2 -2
- package/dist/{chunk-GYX26HZR.js → chunk-DPB6ZVQ5.js} +927 -38
- package/dist/chunk-DPB6ZVQ5.js.map +1 -0
- package/dist/{chunk-DFRQD254.js → chunk-F7UWIMUA.js} +2 -2
- package/dist/{chunk-BKTEGPEO.js → chunk-FSWJC5RR.js} +3 -3
- package/dist/{chunk-W75FRCAP.js → chunk-IT5XO3UG.js} +926 -37
- package/dist/chunk-IT5XO3UG.js.map +1 -0
- package/dist/{chunk-HAMIOQYO.js → chunk-J7MFKS73.js} +2 -2
- package/dist/{chunk-435ECXNG.cjs → chunk-JM7PZM6E.cjs} +3 -3
- package/dist/{chunk-435ECXNG.cjs.map → chunk-JM7PZM6E.cjs.map} +1 -1
- package/dist/{chunk-G343MTBX.js → chunk-K2FGQ5D5.js} +43 -15
- package/dist/chunk-K2FGQ5D5.js.map +1 -0
- package/dist/{chunk-BZW2WS44.js → chunk-KA6JZZIW.js} +83 -716
- package/dist/chunk-KA6JZZIW.js.map +1 -0
- package/dist/{chunk-RMUDX5Q2.js → chunk-N2XN6GAQ.js} +2 -2
- package/dist/{chunk-XVTGFK2F.js → chunk-NE6G6LCP.js} +2 -2
- package/dist/{chunk-AM5ALISV.cjs → chunk-NW2CKOFL.cjs} +6 -6
- package/dist/{chunk-AM5ALISV.cjs.map → chunk-NW2CKOFL.cjs.map} +1 -1
- package/dist/{chunk-5RZBLPVP.js → chunk-OUJIV2AM.js} +4 -4
- package/dist/chunk-OUJIV2AM.js.map +1 -0
- package/dist/{chunk-VMRH6UVA.js → chunk-RCDRTQ37.js} +2 -2
- package/dist/{chunk-KR4UKOX2.js → chunk-RCT5MO53.js} +6 -6
- package/dist/{chunk-3ZLS54V4.js → chunk-TDB27K2Z.js} +2 -2
- package/dist/{chunk-EBJWBGWF.js → chunk-TTUAJYTC.js} +83 -716
- package/dist/chunk-TTUAJYTC.js.map +1 -0
- package/dist/{chunk-5XBZJ3O4.js → chunk-WTSID6AI.js} +2 -2
- package/dist/{chunk-PKCOOSDT.js → chunk-XOUZC7MX.js} +2 -2
- package/dist/{chunk-TLJJF3J6.js → chunk-Z5DT55TW.js} +3 -3
- package/dist/{chunk-J4XCQNVH.cjs → chunk-ZJYNTA5R.cjs} +141 -774
- package/dist/chunk-ZJYNTA5R.cjs.map +1 -0
- package/dist/chunks-S2GGFN6W.js +10 -0
- package/dist/cli.js +30 -30
- package/dist/{formula-DKNZKJ5Z.js → formula-DZMBNPWT.js} +4 -4
- package/dist/{formula-T7D5JIZR.js → formula-PNMQ5JFJ.js} +3 -3
- package/dist/{formula-D7LBREWP.cjs → formula-ZLNSVWS6.cjs} +9 -9
- package/dist/{formula-D7LBREWP.cjs.map → formula-ZLNSVWS6.cjs.map} +1 -1
- package/dist/{image-ocr-5POXVGN2.js → image-ocr-BPH25SFW.js} +9 -9
- package/dist/{image-ocr-7NCSIZGA.js → image-ocr-P5Q6YXTO.js} +6 -6
- package/dist/{image-ocr-N3I3MUKF.cjs → image-ocr-YUXCVOOP.cjs} +17 -17
- package/dist/{image-ocr-N3I3MUKF.cjs.map → image-ocr-YUXCVOOP.cjs.map} +1 -1
- package/dist/index.cjs +729 -701
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +38 -10
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +23 -23
- package/dist/{model-bundle-XT7G2IJU.js → model-bundle-XAM6JFZV.js} +5 -5
- package/dist/{models-AB2VO45L.js → models-6Q5ULSTP.js} +5 -5
- package/dist/{parse-worker-v2-YSSAUPWU.js → parse-worker-v2-ONX5QLJZ.js} +12 -12
- package/dist/{parser-KGDUPSA7.js → parser-54R7ENH6.js} +9 -9
- package/dist/{parser-ES3I54QL.js → parser-JHXN4S6L.js} +12 -12
- package/dist/{parser-AGDY3ZOA.cjs → parser-Z352BN56.cjs} +159 -159
- package/dist/{parser-AGDY3ZOA.cjs.map → parser-Z352BN56.cjs.map} +1 -1
- package/dist/{pdf-ocr-53WUTX6H.js → pdf-ocr-FQ4LAXM6.js} +9 -9
- package/dist/{pdf-ocr-7QSP7JLG.js → pdf-ocr-LFVER7IE.js} +6 -6
- package/dist/pdf-ocr-SMFFJYTD.cjs +31 -0
- package/dist/{pdf-ocr-X6OAHK46.cjs.map → pdf-ocr-SMFFJYTD.cjs.map} +1 -1
- package/dist/{profile-io-GGEJ3MZW.js → profile-io-YW5QWKBB.js} +3 -3
- package/dist/{rasterize-YXICEI5S.js → rasterize-T4S3NMQ7.js} +3 -3
- package/dist/{redact-doc-OYXBNTWI.js → redact-doc-CAVBR5XO.js} +11 -11
- package/dist/{render-4PBNDLK2.js → render-ZW52ZX6R.js} +7 -7
- package/dist/seal-TQ3RLVVT.js +10 -0
- package/dist/{setup-WHTMPK74.js → setup-7UGSJPJP.js} +3 -3
- package/dist/visual-6GXHKPCJ.js +21 -0
- package/dist/{watch-P6UWW52D.js → watch-M4A7B5WS.js} +12 -12
- package/package.json +4 -4
- package/dist/chunk-5RZBLPVP.js.map +0 -1
- package/dist/chunk-BZW2WS44.js.map +0 -1
- package/dist/chunk-EBJWBGWF.js.map +0 -1
- package/dist/chunk-G343MTBX.js.map +0 -1
- package/dist/chunk-GYX26HZR.js.map +0 -1
- package/dist/chunk-J4XCQNVH.cjs.map +0 -1
- package/dist/chunk-JIU7E7Z6.cjs.map +0 -1
- package/dist/chunk-W75FRCAP.js.map +0 -1
- package/dist/chunks-3MWJ7HOZ.js +0 -10
- package/dist/pdf-ocr-X6OAHK46.cjs +0 -31
- package/dist/seal-KJYAU23C.js +0 -10
- package/dist/visual-PHKJTSFR.js +0 -21
- /package/dist/{-7J7Y3XPH.js.map → -TLCDUU22.js.map} +0 -0
- /package/dist/{chunk-TZVVK5MI.js.map → chunk-5MQG3GJI.js.map} +0 -0
- /package/dist/{chunk-GI5LWQ3S.js.map → chunk-7JUF6G6Z.js.map} +0 -0
- /package/dist/{chunk-BBKRJE57.js.map → chunk-7XPTKW76.js.map} +0 -0
- /package/dist/{chunk-XM2Y4DB5.js.map → chunk-BJABLQMB.js.map} +0 -0
- /package/dist/{chunk-EVBSSU3N.js.map → chunk-CB57N2MG.js.map} +0 -0
- /package/dist/{chunk-WNOWRBM4.js.map → chunk-D3EHIHYN.js.map} +0 -0
- /package/dist/{chunk-DFRQD254.js.map → chunk-F7UWIMUA.js.map} +0 -0
- /package/dist/{chunk-BKTEGPEO.js.map → chunk-FSWJC5RR.js.map} +0 -0
- /package/dist/{chunk-HAMIOQYO.js.map → chunk-J7MFKS73.js.map} +0 -0
- /package/dist/{chunk-RMUDX5Q2.js.map → chunk-N2XN6GAQ.js.map} +0 -0
- /package/dist/{chunk-XVTGFK2F.js.map → chunk-NE6G6LCP.js.map} +0 -0
- /package/dist/{chunk-VMRH6UVA.js.map → chunk-RCDRTQ37.js.map} +0 -0
- /package/dist/{chunk-KR4UKOX2.js.map → chunk-RCT5MO53.js.map} +0 -0
- /package/dist/{chunk-3ZLS54V4.js.map → chunk-TDB27K2Z.js.map} +0 -0
- /package/dist/{chunk-5XBZJ3O4.js.map → chunk-WTSID6AI.js.map} +0 -0
- /package/dist/{chunk-PKCOOSDT.js.map → chunk-XOUZC7MX.js.map} +0 -0
- /package/dist/{chunk-TLJJF3J6.js.map → chunk-Z5DT55TW.js.map} +0 -0
- /package/dist/{chunks-3MWJ7HOZ.js.map → chunks-S2GGFN6W.js.map} +0 -0
- /package/dist/{formula-DKNZKJ5Z.js.map → formula-DZMBNPWT.js.map} +0 -0
- /package/dist/{formula-T7D5JIZR.js.map → formula-PNMQ5JFJ.js.map} +0 -0
- /package/dist/{image-ocr-5POXVGN2.js.map → image-ocr-BPH25SFW.js.map} +0 -0
- /package/dist/{image-ocr-7NCSIZGA.js.map → image-ocr-P5Q6YXTO.js.map} +0 -0
- /package/dist/{model-bundle-XT7G2IJU.js.map → model-bundle-XAM6JFZV.js.map} +0 -0
- /package/dist/{models-AB2VO45L.js.map → models-6Q5ULSTP.js.map} +0 -0
- /package/dist/{parse-worker-v2-YSSAUPWU.js.map → parse-worker-v2-ONX5QLJZ.js.map} +0 -0
- /package/dist/{parser-KGDUPSA7.js.map → parser-54R7ENH6.js.map} +0 -0
- /package/dist/{parser-ES3I54QL.js.map → parser-JHXN4S6L.js.map} +0 -0
- /package/dist/{pdf-ocr-53WUTX6H.js.map → pdf-ocr-FQ4LAXM6.js.map} +0 -0
- /package/dist/{pdf-ocr-7QSP7JLG.js.map → pdf-ocr-LFVER7IE.js.map} +0 -0
- /package/dist/{profile-io-GGEJ3MZW.js.map → profile-io-YW5QWKBB.js.map} +0 -0
- /package/dist/{rasterize-YXICEI5S.js.map → rasterize-T4S3NMQ7.js.map} +0 -0
- /package/dist/{redact-doc-OYXBNTWI.js.map → redact-doc-CAVBR5XO.js.map} +0 -0
- /package/dist/{render-4PBNDLK2.js.map → render-ZW52ZX6R.js.map} +0 -0
- /package/dist/{seal-KJYAU23C.js.map → seal-TQ3RLVVT.js.map} +0 -0
- /package/dist/{setup-WHTMPK74.js.map → setup-7UGSJPJP.js.map} +0 -0
- /package/dist/{visual-PHKJTSFR.js.map → visual-6GXHKPCJ.js.map} +0 -0
- /package/dist/{watch-P6UWW52D.js.map → watch-M4A7B5WS.js.map} +0 -0
package/README.md
CHANGED
|
@@ -105,35 +105,35 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
|
|
|
105
105
|
|
|
106
106
|
## 검증 결과
|
|
107
107
|
|
|
108
|
-
**4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·OCR 은 4.24.
|
|
108
|
+
**4.22.14 · 2026-10-19 검증**(렌더 배치·PDF 글·표·OCR 은 4.24.8 · 2026-10-26). 고정 코퍼스와 참조 기준으로 측정한 결과입니다.
|
|
109
109
|
|
|
110
110
|
| 대상 | 규모 | 결과 |
|
|
111
111
|
| --- | --- | --- |
|
|
112
112
|
| HWPX | 2,424문서 · 10,342표 | 표 구조 일치 **10,342/10,342 · 100%** |
|
|
113
113
|
| HWP 5.x ↔ HWPX | 1,130쌍 · 4,315표 | 짝 문서의 표 구조 일치 **100%** |
|
|
114
|
-
| PDF 글 | 744쌍 | 글자 재현율 **99.881%** · 정확도 **99.676%** · 읽기 순서 **99.
|
|
114
|
+
| PDF 글 | 744쌍 | 글자 재현율 **99.881%** · 정확도 **99.676%** · 읽기 순서 **99.309%** · 어절 F1 **99.064%** |
|
|
115
115
|
| PDF 표 | 708쌍 · 2,331표 | 표 탐지 **99.83%** · 구조 일치 **98.20%** · 칸 F1 **0.9919** |
|
|
116
116
|
| HWPX 재조판 | 다중줄 25,187문단 (12개 폴더) | 모든 줄 시작 일치 **24,941/25,187 · 99.02%** |
|
|
117
117
|
| PDF 중첩표 (텍스트층) | 29문서 · 101표 | 구조·칸 내용 **101/101 · 100%** |
|
|
118
118
|
| 법령 별표 | 272건 · 346표 | HWP **346/346**, PDF **342/346 · 98.84%** |
|
|
119
119
|
| PDF 전체 | 1,911문서 중 1,729건 채점 | 글 커버리지 **99.80%** |
|
|
120
|
-
| OCR | 53문서 · 102쪽 · 67표 | CER **0.
|
|
120
|
+
| OCR | 53문서 · 102쪽 · 67표 | CER **0.0314** · 글자 재현율 **99.05%** · 표 구조 일치 **25/67** |
|
|
121
121
|
| opendataloader-bench | PDF 200문서 | 종합 기본값 **0.964** · OCR 끔 **0.939** |
|
|
122
|
-
| HWPX 렌더 배치 (4.24.
|
|
122
|
+
| HWPX 렌더 배치 (4.24.8) | 한컴 PDF 짝 · 글 조각 90,906 · 그림 4,107 | 글 위치(±1.5pt) **87,620 · 96.4%** · 그림 위치(±2pt) **4,019 · 97.9%** |
|
|
123
123
|
|
|
124
124
|
표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 중첩표 100%는 위 101표에 한정하며 전체 PDF·조판의 완전 일치를 뜻하지 않습니다. 채점 범위·제외 기준·옵션별 수치·재현 방법은 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
|
|
125
125
|
|
|
126
126
|
## 최근 업데이트
|
|
127
127
|
|
|
128
|
-
최신 배포: **[4.24.
|
|
128
|
+
최신 배포: **[4.24.8](https://github.com/chrisryugj/kordoc/releases/tag/v4.24.8)** · 2026-10-26
|
|
129
129
|
|
|
130
130
|
| 버전 | 주요 변경 | 수치 변화 |
|
|
131
131
|
| --- | --- | --- |
|
|
132
|
+
| 4.24.8 | 보안: 알려진 의존성 취약점 6건 → 0건(zod 4, MCP SDK 하위 의존성), 출시·CI 에 `npm audit` 게이트 · OCR: 숫자로 읽은 줄 머리 고리 글머리, 다음 글자와 맞닿은 「 · PDF: 머리 칸에만 클립을 건 통계표 | `npm audit` 6 → **0** · OCR CER 0.0327 → **0.0314** · 흐린 입력 OCR CER 0.0663 → **0.0638** · PDF 글 순서 99.307% → **99.309%** |
|
|
133
|
+
| 4.24.7 | 견본 생성: 목차 상자를 요약 상자로 쓰지 않음, 부호 문단 아래 들여 쓴 목록 단계 · HWPML: 묶음·고정폭 빈칸과 강제 줄바꿈 · OCR: 줄 끝 배경 무늬, 머리행에 붙은 숫자 열, 붙임표·줄표 길이 | OCR CER 0.0332 → **0.0327** · 글자 재현율 99.02% → **99.04%** |
|
|
132
134
|
| 4.24.6 | OCR: 예산 사업명세서의 목·내역 하위 행, 칸마다 갈린 색 머리 띠, 칸 안 위아래 두 줄 뒤집힘 · PDF: 쪽 바깥 넉 자 세로 탭 · 렌더: 쪽 번호 새로 시작 · HWPX: 들여 써 저장한 XML 의 공백 | OCR CER 0.0409 → **0.0332** · OCR 표 구조 24 → **25/67** · 렌더 글 위치 87,509 → **87,620** · PDF 글 순서 99.302% → **99.307%** |
|
|
133
135
|
| 4.24.5 | PDF: 분수 막대 수식 복원, 고정폭 글줄의 가짜 무괘선 표, 덧찍은 목차 쪽 번호 · OCR: 선 없이 쌓은 하위 행, 색 머리 띠 안 흰 구분선, 글의 밑줄 표지 · HWPX·HWP: 표 아래 캡션 차례 | PDF 글 순서 99.247% → **99.302%** · 별표 수식 7 → **11/11** · OCR 표 구조 21 → **24/67** |
|
|
134
136
|
| 4.24.4 | 렌더: 넘친 줄 줄이기(빈칸 20%·나머지 글자마다), 칸 안 개체가 키운 칸 높이, KoPub 대체 글꼴로 작성된 문서, 쪽 바닥 행 판정 · PDF: 옆 칸 선이 걸친 칸 변 | 렌더 글 위치 87,289 → **87,509**(새 측정 기준) · 그림 4,017 → **4,019** · PDF 표 구조 98.16% → **98.20%** |
|
|
135
|
-
| 4.24.3 | 렌더: 한컴이 쪽에서 갈라 저장한 여러 행 칸, 엇갈린 병합 표 행 높이, 짝·홀 바탕쪽 물려받기, 묶음 안 회전 사진, 그림자 사진 · PDF: 쪽마다 갈린 행의 이어짐 보존 | 렌더 글 위치 86,954 → **87,215** · 그림 3,881 → **4,017** · 별표 PDF 재현율 0.99976 → **0.99982** |
|
|
136
|
-
| 4.24.2 | 렌더를 한컴 PDF 와 맞춤: 쪽을 넘어온 떠 있는 표, 칸 안 개체 쌓기, 세로 오프셋 이중 계산, 마지막 행 높이, 줄바꿈 앞 공백, 쪽 번호 | 렌더 글 위치 86,508 → **86,954** / 90,550 · 그림 3,872 → **3,881** / 3,976 |
|
|
137
137
|
|
|
138
138
|
이전 버전과 상세 내용은 [변경 이력](CHANGELOG.md)에 있습니다.
|
|
139
139
|
|
|
@@ -58,10 +58,10 @@ import {
|
|
|
58
58
|
usesGaejosikMunche,
|
|
59
59
|
usesLogicStructure,
|
|
60
60
|
validateHwpx
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-K2FGQ5D5.js";
|
|
62
62
|
import {
|
|
63
63
|
blocksToChunks
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-RCDRTQ37.js";
|
|
65
65
|
import {
|
|
66
66
|
SPACE_EM_FIXED,
|
|
67
67
|
SPACE_EM_FONT,
|
|
@@ -86,20 +86,20 @@ import {
|
|
|
86
86
|
renderSceneToHtml,
|
|
87
87
|
simulateWrap,
|
|
88
88
|
simulateWrapKeepWord
|
|
89
|
-
} from "./chunk-
|
|
90
|
-
import "./chunk-
|
|
89
|
+
} from "./chunk-RCT5MO53.js";
|
|
90
|
+
import "./chunk-J7MFKS73.js";
|
|
91
91
|
import {
|
|
92
92
|
blocksToPages
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-7JUF6G6Z.js";
|
|
94
94
|
import "./chunk-VKVDMH7X.js";
|
|
95
95
|
import "./chunk-VQFA55IC.js";
|
|
96
96
|
import "./chunk-BYMPPVT3.js";
|
|
97
|
-
import "./chunk-
|
|
97
|
+
import "./chunk-TDB27K2Z.js";
|
|
98
98
|
import {
|
|
99
99
|
blocksToMarkdown,
|
|
100
100
|
flattenLayoutTables,
|
|
101
101
|
hasStructuredCellContent
|
|
102
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-BJABLQMB.js";
|
|
103
103
|
import {
|
|
104
104
|
ValueCursor,
|
|
105
105
|
applySplices,
|
|
@@ -113,11 +113,11 @@ import {
|
|
|
113
113
|
isLabelCell,
|
|
114
114
|
placeSealHwpx,
|
|
115
115
|
scanSectionXml
|
|
116
|
-
} from "./chunk-
|
|
117
|
-
import "./chunk-
|
|
116
|
+
} from "./chunk-FSWJC5RR.js";
|
|
117
|
+
import "./chunk-7XPTKW76.js";
|
|
118
118
|
import {
|
|
119
119
|
VERSION
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-5MQG3GJI.js";
|
|
121
121
|
import {
|
|
122
122
|
DEFAULT_REDACT_RULES,
|
|
123
123
|
redactMarkdown,
|
|
@@ -227,4 +227,4 @@ export {
|
|
|
227
227
|
usesLogicStructure,
|
|
228
228
|
validateHwpx
|
|
229
229
|
};
|
|
230
|
-
//# sourceMappingURL=-
|
|
230
|
+
//# sourceMappingURL=-TLCDUU22.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.
|
|
5
|
+
var VERSION = true ? "4.24.8" : "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-
|
|
175
|
+
//# sourceMappingURL=chunk-5MQG3GJI.js.map
|