kordoc 3.7.0 → 3.8.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.
Files changed (30) hide show
  1. package/README.md +14 -2
  2. package/dist/{-7UC4ZWBS.js → -LD4BZDDJ.js} +3 -3
  3. package/dist/{chunk-IJJMVTU5.js → chunk-IFYJFWD2.js} +2 -2
  4. package/dist/{chunk-NXRABCWW.js → chunk-KT2BCHXI.js} +803 -703
  5. package/dist/chunk-KT2BCHXI.js.map +1 -0
  6. package/dist/{chunk-QZCP3UWU.cjs → chunk-LFCS3UVG.cjs} +2 -2
  7. package/dist/{chunk-QZCP3UWU.cjs.map → chunk-LFCS3UVG.cjs.map} +1 -1
  8. package/dist/{chunk-MEVKYW55.js → chunk-PELBIL4K.js} +2 -2
  9. package/dist/cli.js +4 -4
  10. package/dist/index.cjs +968 -868
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.js +802 -702
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp.js +3 -3
  15. package/dist/{parser-DR5CTZ74.js → parser-FFEBMLSH.js} +1830 -1803
  16. package/dist/parser-FFEBMLSH.js.map +1 -0
  17. package/dist/{parser-RFLPUZ7P.cjs → parser-IXK5V7YG.cjs} +1830 -1803
  18. package/dist/parser-IXK5V7YG.cjs.map +1 -0
  19. package/dist/{parser-ZHJFQR44.js → parser-XEDROIM7.js} +1830 -1803
  20. package/dist/parser-XEDROIM7.js.map +1 -0
  21. package/dist/{watch-UIX447QV.js → watch-MAWCDNFI.js} +3 -3
  22. package/package.json +2 -2
  23. package/dist/chunk-NXRABCWW.js.map +0 -1
  24. package/dist/parser-DR5CTZ74.js.map +0 -1
  25. package/dist/parser-RFLPUZ7P.cjs.map +0 -1
  26. package/dist/parser-ZHJFQR44.js.map +0 -1
  27. /package/dist/{-7UC4ZWBS.js.map → -LD4BZDDJ.js.map} +0 -0
  28. /package/dist/{chunk-IJJMVTU5.js.map → chunk-IFYJFWD2.js.map} +0 -0
  29. /package/dist/{chunk-MEVKYW55.js.map → chunk-PELBIL4K.js.map} +0 -0
  30. /package/dist/{watch-UIX447QV.js.map → watch-MAWCDNFI.js.map} +0 -0
package/README.md CHANGED
@@ -27,7 +27,7 @@ npx -y kordoc setup
27
27
  1. 사용 중인 AI 클라이언트 번호 선택 (Claude Desktop / Cursor / Claude Code / Windsurf / VS Code / Gemini CLI / Zed / Antigravity — 설치된 건 `[감지됨]` 표시)
28
28
  2. 설정 파일 자동 패치 → 클라이언트 재시작
29
29
 
30
- Windows 도 자동으로 `cmd /c npx` 래핑. 수동 JSON 편집 불필요. 재시작하면 8개 문서 파싱 도구 (`parse_document`, `parse_table`, `fill_form` 등) 활성화.
30
+ Windows 도 자동으로 `cmd /c npx` 래핑. 수동 JSON 편집 불필요. 재시작하면 10개 문서 도구 (`parse_document`, `parse_table`, `fill_form`, `patch_document`, `generate_document` 등) 활성화.
31
31
 
32
32
  > **CLI 로만 쓸 거면** 설치 없이 `npx kordoc <파일>` 바로 사용. 아래 [CLI](#cli) 섹션 참고.
33
33
 
@@ -62,12 +62,24 @@ Windows 도 자동으로 `cmd /c npx` 래핑. 수동 JSON 편집 불필요. 재
62
62
  * **📊 복잡한 표(Table) 완벽 재현**: 선이 없는 PDF나 복잡하게 병합된 HWP 표도 구조를 분석하여 정확한 마크다운 테이블로 복원합니다.
63
63
  * **🔍 신구대조표 자동 생성**: 두 문서의 차이점을 분석하여 무엇이 바뀌었는지 한눈에 보여줍니다. (HWP와 HWPX 간의 비교도 가능!)
64
64
  * **📝 마크다운을 다시 HWPX로**: AI가 작성한 내용을 다시 보고서 양식(`HWPX`)으로 되돌려줍니다. 이제 복사-붙여넣기 노가다에서 해방되세요.
65
- * **🔄 서식 보존 무손실 라운드트립 (v3.0)**: 변환된 마크다운을 편집해서 `patchHwpx`(HWPX) / `patchHwp`(HWP 5.x 바이너리)에 넘기면, **원본 서식을 1바이트도 건드리지 않고** 바뀐 문단/표 셀의 텍스트만 원본 안에서 교체합니다. v3.7부터는 **표에 행을 추가/삭제하는 편집**도 원본 서식을 승계하며 반영됩니다.
65
+ * **🔄 서식 보존 무손실 라운드트립 (v3.0)**: 변환된 마크다운을 편집해서 `patchHwpx`(HWPX) / `patchHwp`(HWP 5.x 바이너리)에 넘기면, **원본 서식을 1바이트도 건드리지 않고** 바뀐 문단/표 셀의 텍스트만 원본 안에서 교체합니다. v3.7부터는 **표에 행을 추가/삭제하는 편집**도 원본 서식을 승계하며 반영되고, v3.8부터는 HWP 5.x의 **빈 셀에 값 넣기**도 지원합니다.
66
66
  * **✏️ 양식 자동 채우기**: 공문서 양식 템플릿(신청서, 보고서)에 값을 넣으면 자동으로 빈칸을 채웁니다. 원본 서식(글꼴, 크기, 정렬)을 100% 보존합니다.
67
67
  * **🤖 AI 에이전트 연동 (MCP)**: `Claude`, `Cursor`와 같은 도구에서 직접 `kordoc`을 호출해 문서를 읽고 코딩할 수 있습니다.
68
68
 
69
69
  ---
70
70
 
71
+ ## v3.8.1 변경사항
72
+
73
+ - **🔄 PDF 회전 텍스트 복구**: 90°로 눕힌 사이드탭 목차·세로 표(계속비 총괄표 등)가 숨김 텍스트로 오인돼 통째로 빠지던 버그 수정 — 이제 보이는 회전 텍스트도 추출됩니다. (숨김텍스트 prompt-injection 방어는 그대로)
74
+ - **🧱 내부 구조 정리**: PDF 선 감지(1,247줄)·HWPX 파서(1,619줄) 대형 파일을 목적별 15개 모듈로 분리 — 공개 API·출력 100% 동일 (실파일 87건 해시 검증).
75
+
76
+ ## v3.8.0 변경사항
77
+
78
+ - **✏️ HWP 5.x 빈 셀 채우기** (`patchHwp`): 원본에서 비어 있던 표 셀에 마크다운 편집으로 값을 넣으면 이제 HWP 바이너리에도 삽입됩니다. 한컴이 빈 문단을 저장하는 방식(텍스트 레코드 생략형 포함)을 실파일 실측으로 지원. *(실파일 12건 무손상 검증)*
79
+ - **🏛️ 공문 항목 사이 표**: "1. 항목 → 근거 표 → 2. 항목"처럼 리스트 사이에 표가 끼어도 항목 번호가 이어집니다 (공문서 모드).
80
+ - **🚀 이미지 대량 참조 메모리 폭발 해소**: 같은 이미지를 수천 개 도형이 참조하는 문서(HWP·HWPX)에서 참조마다 데이터를 복사하다 **피크 17GB로 죽던 것을 445MB·0.2초 완주**로 수정.
81
+ - **📢 DOCX 관측성**: 이미지/스타일/번호/각주/메타 파싱 실패를 조용히 넘기지 않고 `warnings`로 보고합니다.
82
+
71
83
  ## v3.7.0 변경사항
72
84
 
73
85
  - **📋 표 행 추가/삭제** (`patchHwpx`): 마크다운에서 표에 행을 새로 넣거나 지워도 이제 원본에 반영됩니다. 새 행은 **인접 행의 서식(테두리·글꼴·높이)을 그대로 복제**해 셀 텍스트만 바꿔 넣고, `rowCnt`·셀 좌표·표 높이까지 함께 갱신합니다. 세로 병합을 가로지르거나 행에 이미지/중첩표가 있는 등 위험한 경우엔 문서를 건드리지 않고 사유와 함께 skip합니다. *(실제 결재문서 45건 검증 — 손상 0)*
@@ -41,7 +41,7 @@ import {
41
41
  scanSectionXml,
42
42
  simulateWrap,
43
43
  simulateWrapKeepWord
44
- } from "./chunk-NXRABCWW.js";
44
+ } from "./chunk-KT2BCHXI.js";
45
45
  import {
46
46
  detectFormat,
47
47
  detectOle2Format,
@@ -54,7 +54,7 @@ import {
54
54
  import {
55
55
  VERSION,
56
56
  blocksToMarkdown
57
- } from "./chunk-IJJMVTU5.js";
57
+ } from "./chunk-IFYJFWD2.js";
58
58
  import "./chunk-MOL7MDBG.js";
59
59
  export {
60
60
  HwpxSession,
@@ -108,4 +108,4 @@ export {
108
108
  simulateWrap,
109
109
  simulateWrapKeepWord
110
110
  };
111
- //# sourceMappingURL=-7UC4ZWBS.js.map
111
+ //# sourceMappingURL=-LD4BZDDJ.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/utils.ts
4
- var VERSION = true ? "3.7.0" : "0.0.0-dev";
4
+ var VERSION = true ? "3.8.1" : "0.0.0-dev";
5
5
  function toArrayBuffer(buf) {
6
6
  if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
7
7
  return buf.buffer;
@@ -648,4 +648,4 @@ export {
648
648
  HEADING_RATIO_H2,
649
649
  HEADING_RATIO_H3
650
650
  };
651
- //# sourceMappingURL=chunk-IJJMVTU5.js.map
651
+ //# sourceMappingURL=chunk-IFYJFWD2.js.map