kordoc 4.21.0 → 4.21.1
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 +2 -1
- package/dist/{-LJL6UNRO.js → -OZRZ6ZMD.js} +11 -11
- package/dist/{chunk-XZ3HIQXC.js → chunk-3NZZKH5I.js} +2 -2
- package/dist/{chunk-WB6RROCW.js → chunk-3W73FORT.js} +2 -2
- package/dist/{chunk-MCMMGZOJ.js → chunk-5DDTO45D.js} +16 -4
- package/dist/chunk-5DDTO45D.js.map +1 -0
- package/dist/{chunk-LRHVFJ5J.js → chunk-6IODHI3E.js} +3 -3
- package/dist/{chunk-JL525ZAU.cjs → chunk-7YQEYPXF.cjs} +3 -3
- package/dist/{chunk-JL525ZAU.cjs.map → chunk-7YQEYPXF.cjs.map} +1 -1
- package/dist/{chunk-ZJDZH647.js → chunk-BV6TC5N3.js} +2 -2
- package/dist/{chunk-O33PS3VI.js → chunk-D2D3K6PK.js} +45 -9
- package/dist/{chunk-SEVFALDF.js.map → chunk-D2D3K6PK.js.map} +1 -1
- package/dist/{chunk-SEVFALDF.js → chunk-DUCUZI2U.js} +44 -8
- package/dist/{chunk-O33PS3VI.js.map → chunk-DUCUZI2U.js.map} +1 -1
- package/dist/{chunk-D4EDAS3V.js → chunk-EKOBLQOS.js} +3 -3
- package/dist/{chunk-GYPEF6GQ.js → chunk-F5S7BOR6.js} +2 -2
- package/dist/{chunk-ZNCOOG54.js → chunk-FS2FXE5F.js} +2 -2
- package/dist/{chunk-7QL3G7UF.cjs → chunk-FVO7GNEK.cjs} +35 -23
- package/dist/chunk-FVO7GNEK.cjs.map +1 -0
- package/dist/{chunk-ALCZCRIU.js → chunk-J4SN4BCM.js} +17 -5
- package/dist/chunk-J4SN4BCM.js.map +1 -0
- package/dist/{chunk-JUFEZMXC.cjs → chunk-K7FX24I2.cjs} +3 -3
- package/dist/{chunk-JUFEZMXC.cjs.map → chunk-K7FX24I2.cjs.map} +1 -1
- package/dist/{chunk-2OTAFZ2Y.cjs → chunk-LW63FZMQ.cjs} +6 -6
- package/dist/{chunk-2OTAFZ2Y.cjs.map → chunk-LW63FZMQ.cjs.map} +1 -1
- package/dist/{chunk-6EXVHTBH.js → chunk-LYTS6GNB.js} +2 -2
- package/dist/{chunk-HDP2H33I.js → chunk-MTEABK52.js} +2 -2
- package/dist/{chunk-JEKZXUIJ.js → chunk-O5NCN6ZS.js} +2 -2
- package/dist/{chunk-VSSMJKOX.js → chunk-OTHN3DU3.js} +6 -6
- package/dist/{chunk-G57LD7SG.js → chunk-PKT3I2DP.js} +2 -2
- package/dist/{chunk-OVBIDELJ.js → chunk-RSOPXKRC.js} +2 -2
- package/dist/{chunk-FNHELO37.js → chunk-RXX2GPV4.js} +2 -2
- package/dist/{chunk-UYKDMNLD.cjs → chunk-SVCXIEKS.cjs} +2 -2
- package/dist/{chunk-UYKDMNLD.cjs.map → chunk-SVCXIEKS.cjs.map} +1 -1
- package/dist/{chunk-WUJNUWZ4.js → chunk-TKYG2C3I.js} +2 -2
- package/dist/{chunk-O23XMVMP.js → chunk-TN3KO2XJ.js} +2 -2
- package/dist/{chunk-T3EVQHOP.js → chunk-TNB7RDIH.js} +2 -2
- package/dist/{chunk-QQERGR6C.js → chunk-UUWUGQT5.js} +10 -10
- package/dist/{chunk-3ITKDX7E.cjs → chunk-VVZL2JYD.cjs} +54 -18
- package/dist/chunk-VVZL2JYD.cjs.map +1 -0
- package/dist/{chunk-6SG56DDC.js → chunk-XIULHXJT.js} +2 -2
- package/dist/chunks-O6FB73OX.js +10 -0
- package/dist/cli.js +30 -30
- package/dist/{formula-AD75YRCB.js → formula-2P5T7GU2.js} +3 -3
- package/dist/{formula-JULH7HF6.js → formula-STBBUZL3.js} +4 -4
- package/dist/{formula-B7GGECPZ.cjs → formula-YNAYIUU7.cjs} +9 -9
- package/dist/{formula-B7GGECPZ.cjs.map → formula-YNAYIUU7.cjs.map} +1 -1
- package/dist/{image-ocr-E2IN6D4B.cjs → image-ocr-D7KEGYCN.cjs} +15 -15
- package/dist/{image-ocr-E2IN6D4B.cjs.map → image-ocr-D7KEGYCN.cjs.map} +1 -1
- package/dist/{image-ocr-2UJ6QP63.js → image-ocr-IQ27CCW6.js} +6 -6
- package/dist/{image-ocr-3C3K64AD.js → image-ocr-RYSLM2OK.js} +9 -9
- package/dist/index.cjs +280 -280
- package/dist/index.js +5 -5
- package/dist/mcp.js +22 -22
- package/dist/{model-bundle-XT5IXIZ3.js → model-bundle-ZFXH6CUU.js} +5 -5
- package/dist/{models-NDSZF5T2.js → models-TRN5BSLA.js} +5 -5
- package/dist/{parse-worker-v2-XTDC2E3M.js → parse-worker-v2-42ZZUQMA.js} +12 -12
- package/dist/{parser-3W5XWIE5.js → parser-KNJ6RK2C.js} +11 -11
- package/dist/{parser-V2JLOQIC.cjs → parser-TRFPHIP6.cjs} +132 -132
- package/dist/{parser-V2JLOQIC.cjs.map → parser-TRFPHIP6.cjs.map} +1 -1
- package/dist/{parser-VE7A5K7X.js → parser-X6KXSE7R.js} +8 -8
- package/dist/pdf-ocr-2MKLAFDN.js +22 -0
- package/dist/pdf-ocr-EB5XZDIZ.cjs +19 -0
- package/dist/pdf-ocr-EB5XZDIZ.cjs.map +1 -0
- package/dist/pdf-ocr-M5IERUF3.js +18 -0
- package/dist/{profile-io-7Z6CPLR2.js → profile-io-TDWZV5B2.js} +3 -3
- package/dist/{rasterize-IF2FNQ7Y.js → rasterize-UCZA2GNN.js} +3 -3
- package/dist/{redact-doc-HE42N4TZ.js → redact-doc-BOD7CI5F.js} +11 -11
- package/dist/{render-6ZE75NBK.js → render-FV6SM5FL.js} +7 -7
- package/dist/seal-H5CDZWYJ.js +10 -0
- package/dist/{setup-ZTYMTCEJ.js → setup-4DCDJD65.js} +3 -3
- package/dist/visual-E7LZ6QVO.js +20 -0
- package/dist/{watch-WELSQDEN.js → watch-MECSPFWF.js} +12 -12
- package/package.json +1 -1
- package/dist/chunk-3ITKDX7E.cjs.map +0 -1
- package/dist/chunk-7QL3G7UF.cjs.map +0 -1
- package/dist/chunk-ALCZCRIU.js.map +0 -1
- package/dist/chunk-MCMMGZOJ.js.map +0 -1
- package/dist/chunks-XOKXUJ67.js +0 -10
- package/dist/pdf-ocr-KZ56UECD.js +0 -20
- package/dist/pdf-ocr-L4EUIDIW.js +0 -16
- package/dist/pdf-ocr-XPLOCBYI.cjs +0 -17
- package/dist/pdf-ocr-XPLOCBYI.cjs.map +0 -1
- package/dist/seal-N2Q7WC4V.js +0 -10
- package/dist/visual-3YC2PLLG.js +0 -20
- /package/dist/{-LJL6UNRO.js.map → -OZRZ6ZMD.js.map} +0 -0
- /package/dist/{chunk-XZ3HIQXC.js.map → chunk-3NZZKH5I.js.map} +0 -0
- /package/dist/{chunk-WB6RROCW.js.map → chunk-3W73FORT.js.map} +0 -0
- /package/dist/{chunk-LRHVFJ5J.js.map → chunk-6IODHI3E.js.map} +0 -0
- /package/dist/{chunk-ZJDZH647.js.map → chunk-BV6TC5N3.js.map} +0 -0
- /package/dist/{chunk-D4EDAS3V.js.map → chunk-EKOBLQOS.js.map} +0 -0
- /package/dist/{chunk-GYPEF6GQ.js.map → chunk-F5S7BOR6.js.map} +0 -0
- /package/dist/{chunk-ZNCOOG54.js.map → chunk-FS2FXE5F.js.map} +0 -0
- /package/dist/{chunk-6EXVHTBH.js.map → chunk-LYTS6GNB.js.map} +0 -0
- /package/dist/{chunk-HDP2H33I.js.map → chunk-MTEABK52.js.map} +0 -0
- /package/dist/{chunk-JEKZXUIJ.js.map → chunk-O5NCN6ZS.js.map} +0 -0
- /package/dist/{chunk-VSSMJKOX.js.map → chunk-OTHN3DU3.js.map} +0 -0
- /package/dist/{chunk-G57LD7SG.js.map → chunk-PKT3I2DP.js.map} +0 -0
- /package/dist/{chunk-OVBIDELJ.js.map → chunk-RSOPXKRC.js.map} +0 -0
- /package/dist/{chunk-FNHELO37.js.map → chunk-RXX2GPV4.js.map} +0 -0
- /package/dist/{chunk-WUJNUWZ4.js.map → chunk-TKYG2C3I.js.map} +0 -0
- /package/dist/{chunk-O23XMVMP.js.map → chunk-TN3KO2XJ.js.map} +0 -0
- /package/dist/{chunk-T3EVQHOP.js.map → chunk-TNB7RDIH.js.map} +0 -0
- /package/dist/{chunk-QQERGR6C.js.map → chunk-UUWUGQT5.js.map} +0 -0
- /package/dist/{chunk-6SG56DDC.js.map → chunk-XIULHXJT.js.map} +0 -0
- /package/dist/{chunks-XOKXUJ67.js.map → chunks-O6FB73OX.js.map} +0 -0
- /package/dist/{formula-AD75YRCB.js.map → formula-2P5T7GU2.js.map} +0 -0
- /package/dist/{formula-JULH7HF6.js.map → formula-STBBUZL3.js.map} +0 -0
- /package/dist/{image-ocr-2UJ6QP63.js.map → image-ocr-IQ27CCW6.js.map} +0 -0
- /package/dist/{image-ocr-3C3K64AD.js.map → image-ocr-RYSLM2OK.js.map} +0 -0
- /package/dist/{model-bundle-XT5IXIZ3.js.map → model-bundle-ZFXH6CUU.js.map} +0 -0
- /package/dist/{models-NDSZF5T2.js.map → models-TRN5BSLA.js.map} +0 -0
- /package/dist/{parse-worker-v2-XTDC2E3M.js.map → parse-worker-v2-42ZZUQMA.js.map} +0 -0
- /package/dist/{parser-3W5XWIE5.js.map → parser-KNJ6RK2C.js.map} +0 -0
- /package/dist/{parser-VE7A5K7X.js.map → parser-X6KXSE7R.js.map} +0 -0
- /package/dist/{pdf-ocr-KZ56UECD.js.map → pdf-ocr-2MKLAFDN.js.map} +0 -0
- /package/dist/{pdf-ocr-L4EUIDIW.js.map → pdf-ocr-M5IERUF3.js.map} +0 -0
- /package/dist/{profile-io-7Z6CPLR2.js.map → profile-io-TDWZV5B2.js.map} +0 -0
- /package/dist/{rasterize-IF2FNQ7Y.js.map → rasterize-UCZA2GNN.js.map} +0 -0
- /package/dist/{redact-doc-HE42N4TZ.js.map → redact-doc-BOD7CI5F.js.map} +0 -0
- /package/dist/{render-6ZE75NBK.js.map → render-FV6SM5FL.js.map} +0 -0
- /package/dist/{seal-N2Q7WC4V.js.map → seal-H5CDZWYJ.js.map} +0 -0
- /package/dist/{setup-ZTYMTCEJ.js.map → setup-4DCDJD65.js.map} +0 -0
- /package/dist/{visual-3YC2PLLG.js.map → visual-E7LZ6QVO.js.map} +0 -0
- /package/dist/{watch-WELSQDEN.js.map → watch-MECSPFWF.js.map} +0 -0
package/README.md
CHANGED
|
@@ -111,10 +111,11 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
|
|
|
111
111
|
|
|
112
112
|
## 최근 업데이트
|
|
113
113
|
|
|
114
|
-
최신 배포: **[4.21.
|
|
114
|
+
최신 배포: **[4.21.1](https://github.com/chrisryugj/kordoc/releases/tag/v4.21.1)** · 2026-10-08
|
|
115
115
|
|
|
116
116
|
| 버전 | 주요 변경 |
|
|
117
117
|
| --- | --- |
|
|
118
|
+
| 4.21.1 | 이미지 OCR 에서 같은 줄 조각이 갈려 순서가 뒤집히던 것과 테두리 없는 영수증 표의 품목 행이 섞이던 것 (#141) |
|
|
118
119
|
| 4.21.0 | 중앙부처 기관 서식 `--agency`(보도자료 2,670건·52개 기관 실측 단계 글꼴·크기·2단계 부호 ◦·❍·표 머리·기관 색), 보도자료 담당 표 사람별 행(`--press-people`), 폭표 없는 글꼴의 생성 폭 계산 보정 |
|
|
119
120
|
| 4.20.0 | 표기법 검수 7룰(기간 대시·요일·금액 한글·공공언어·맞춤법·2타)과 문서 직접 검수·수치 대조·단계별 서식 편차, 견본 HWPX 단계별 서식 학습(`levels`·`--levels-from`), `compare`·`patch --json`, 패치 무결성 검사, 붙여넣기 흔적 정리 |
|
|
120
121
|
| 4.19.2 | rhwp v0.8.7 파서 수정 반영 — HWP3 체크박스 □, HWP5 짝 없는 서로게이트 □, 손상 CFB 복구의 본문 경로 오인 수정, HWPX 압축 해제 상한을 엔트리 읽는 도중에 적용 |
|
|
@@ -54,17 +54,17 @@ import {
|
|
|
54
54
|
unknownFontWarnings,
|
|
55
55
|
usesGaejosikMunche,
|
|
56
56
|
validateHwpx
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-UUWUGQT5.js";
|
|
58
58
|
import {
|
|
59
59
|
blocksToPages
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-O5NCN6ZS.js";
|
|
61
61
|
import {
|
|
62
62
|
applySplices,
|
|
63
63
|
buildParagraphSplices,
|
|
64
64
|
buildRangeSplices,
|
|
65
65
|
placeSealHwpx,
|
|
66
66
|
scanSectionXml
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-EKOBLQOS.js";
|
|
68
68
|
import {
|
|
69
69
|
DEFAULT_REDACT_RULES,
|
|
70
70
|
redactMarkdown,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
} from "./chunk-3WSNLH4B.js";
|
|
73
73
|
import {
|
|
74
74
|
blocksToChunks
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-F5S7BOR6.js";
|
|
76
76
|
import {
|
|
77
77
|
SPACE_EM_FIXED,
|
|
78
78
|
SPACE_EM_FONT,
|
|
@@ -97,20 +97,20 @@ import {
|
|
|
97
97
|
renderSceneToHtml,
|
|
98
98
|
simulateWrap,
|
|
99
99
|
simulateWrapKeepWord
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-OTHN3DU3.js";
|
|
101
101
|
import "./chunk-7FCNOKOR.js";
|
|
102
|
-
import "./chunk-
|
|
102
|
+
import "./chunk-XIULHXJT.js";
|
|
103
103
|
import "./chunk-VQFA55IC.js";
|
|
104
|
-
import "./chunk-
|
|
104
|
+
import "./chunk-PKT3I2DP.js";
|
|
105
105
|
import {
|
|
106
106
|
blocksToMarkdown,
|
|
107
107
|
flattenLayoutTables,
|
|
108
108
|
hasStructuredCellContent
|
|
109
|
-
} from "./chunk-
|
|
110
|
-
import "./chunk-
|
|
109
|
+
} from "./chunk-LYTS6GNB.js";
|
|
110
|
+
import "./chunk-RSOPXKRC.js";
|
|
111
111
|
import {
|
|
112
112
|
VERSION
|
|
113
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-RXX2GPV4.js";
|
|
114
114
|
export {
|
|
115
115
|
AGENCY_COMMON_NAME,
|
|
116
116
|
BUILTIN_TEMPLATES,
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
usesGaejosikMunche,
|
|
205
205
|
validateHwpx
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=-
|
|
207
|
+
//# sourceMappingURL=-OZRZ6ZMD.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/utils.ts
|
|
2
|
-
var VERSION = true ? "4.21.
|
|
2
|
+
var VERSION = true ? "4.21.1" : "0.0.0-dev";
|
|
3
3
|
function toArrayBuffer(buf) {
|
|
4
4
|
if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
|
|
5
5
|
return buf.buffer;
|
|
@@ -159,4 +159,4 @@ export {
|
|
|
159
159
|
classifyError,
|
|
160
160
|
partExtension
|
|
161
161
|
};
|
|
162
|
-
//# sourceMappingURL=chunk-
|
|
162
|
+
//# sourceMappingURL=chunk-3NZZKH5I.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
KordocError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-RXX2GPV4.js";
|
|
5
5
|
|
|
6
6
|
// src/hwpx/profile-io.ts
|
|
7
7
|
import { z } from "zod";
|
|
@@ -89,4 +89,4 @@ export {
|
|
|
89
89
|
formatProfileSchema,
|
|
90
90
|
parseFormatProfileJson
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-3W73FORT.js.map
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
HEADING_RATIO_H2,
|
|
6
6
|
HEADING_RATIO_H3,
|
|
7
7
|
tidyScriptTags
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XIULHXJT.js";
|
|
9
9
|
import {
|
|
10
10
|
safeMax,
|
|
11
11
|
safeMin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RXX2GPV4.js";
|
|
13
13
|
|
|
14
14
|
// src/pdf/line-extract.ts
|
|
15
15
|
import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
@@ -5283,7 +5283,7 @@ function mergeMultiLineRows(rows, columns) {
|
|
|
5283
5283
|
const curr = rows[i];
|
|
5284
5284
|
const yGap = Math.abs(prev.y - curr.y);
|
|
5285
5285
|
const matchedCols = countMatchedColumns(curr, columns);
|
|
5286
|
-
if (yGap < avgFontSize * 1.8 && curr.items.length <= 2 && (matchedCols < MIN_COLS || curr.items.length === 1)) {
|
|
5286
|
+
if (yGap < avgFontSize * 1.8 && curr.items.length <= 2 && (matchedCols < MIN_COLS || curr.items.length === 1) && !startsNewRecord(prev, curr, columns)) {
|
|
5287
5287
|
result[result.length - 1] = {
|
|
5288
5288
|
y: prev.y,
|
|
5289
5289
|
items: [...prev.items, ...curr.items]
|
|
@@ -5294,6 +5294,18 @@ function mergeMultiLineRows(rows, columns) {
|
|
|
5294
5294
|
}
|
|
5295
5295
|
return result;
|
|
5296
5296
|
}
|
|
5297
|
+
function startsNewRecord(prev, curr, columns) {
|
|
5298
|
+
const colOf = (x) => {
|
|
5299
|
+
let ci = -1;
|
|
5300
|
+
for (let c = 0; c < columns.length; c++) if (columns[c].x <= x + COL_CLUSTER_TOL) ci = c;
|
|
5301
|
+
return ci;
|
|
5302
|
+
};
|
|
5303
|
+
return curr.items.some((it) => {
|
|
5304
|
+
const ci = colOf(it.x);
|
|
5305
|
+
if (ci < 0 || ci + 1 >= columns.length || it.x + it.w <= columns[ci + 1].x + COL_CLUSTER_TOL) return false;
|
|
5306
|
+
return prev.items.some((p) => colOf(p.x) === ci);
|
|
5307
|
+
});
|
|
5308
|
+
}
|
|
5297
5309
|
function groupByBaseline(items) {
|
|
5298
5310
|
if (items.length === 0) return [];
|
|
5299
5311
|
const sorted = [...items].sort((a, b) => b.y - a.y || a.x - b.x);
|
|
@@ -8298,4 +8310,4 @@ export {
|
|
|
8298
8310
|
removeSideTabs,
|
|
8299
8311
|
extractPageBlocksWithLines
|
|
8300
8312
|
};
|
|
8301
|
-
//# sourceMappingURL=chunk-
|
|
8313
|
+
//# sourceMappingURL=chunk-5DDTO45D.js.map
|