kordoc 4.2.9 → 4.3.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 (166) hide show
  1. package/README.md +922 -885
  2. package/dist/{-ECUCTQTR.js → -RH6BEVTT.js} +28 -20
  3. package/dist/{chunk-J2RZ444H.js → chunk-3FFPHTXD.js} +1 -1
  4. package/dist/chunk-3FFPHTXD.js.map +1 -0
  5. package/dist/{chunk-PATPZTH7.cjs → chunk-5F5UCACZ.cjs} +6 -6
  6. package/dist/chunk-5F5UCACZ.cjs.map +1 -0
  7. package/dist/{chunk-5RPYBC2Q.js → chunk-6GBLFQMA.js} +1 -1
  8. package/dist/chunk-6GBLFQMA.js.map +1 -0
  9. package/dist/{chunk-GEPINOL6.js → chunk-6XPXIG57.js} +2 -2
  10. package/dist/chunk-6XPXIG57.js.map +1 -0
  11. package/dist/{chunk-4ZWKFDUC.cjs → chunk-7DZPPUQD.cjs} +44 -13
  12. package/dist/chunk-7DZPPUQD.cjs.map +1 -0
  13. package/dist/{chunk-MHMVFI2N.js → chunk-BPJSTJBN.js} +4 -4
  14. package/dist/chunk-BPJSTJBN.js.map +1 -0
  15. package/dist/{chunk-XU4VWOKL.js → chunk-BYEQDLZS.js} +4 -3
  16. package/dist/chunk-BYEQDLZS.js.map +1 -0
  17. package/dist/{chunk-3PLF5UIS.js → chunk-CD5X6UG5.js} +37 -6
  18. package/dist/chunk-CD5X6UG5.js.map +1 -0
  19. package/dist/chunk-DCZVOIEO.cjs.map +1 -1
  20. package/dist/{chunk-STYN45MS.js → chunk-FUXDD36A.js} +4 -4
  21. package/dist/chunk-FUXDD36A.js.map +1 -0
  22. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  23. package/dist/{chunk-YR4PF56B.js → chunk-GTPEKBN6.js} +2 -2
  24. package/dist/chunk-GTPEKBN6.js.map +1 -0
  25. package/dist/{chunk-27Z4PUZZ.js → chunk-HPRK67YB.js} +38 -7
  26. package/dist/chunk-HPRK67YB.js.map +1 -0
  27. package/dist/{chunk-NIISBGSR.js → chunk-HZU7Y22R.js} +71 -29
  28. package/dist/chunk-HZU7Y22R.js.map +1 -0
  29. package/dist/{chunk-7ZARSBQ3.js → chunk-LEC2HG7A.js} +4 -3
  30. package/dist/chunk-LEC2HG7A.js.map +1 -0
  31. package/dist/{chunk-H7OWEYH2.cjs → chunk-MGGU3ZRK.cjs} +1 -1
  32. package/dist/chunk-MGGU3ZRK.cjs.map +1 -0
  33. package/dist/chunk-MOL7MDBG.js +0 -0
  34. package/dist/{chunk-DZIXKL7E.js → chunk-O5EK52TG.js} +1 -1
  35. package/dist/chunk-O5EK52TG.js.map +1 -0
  36. package/dist/{chunk-LXE7OR6N.js → chunk-PV3NVBGL.js} +3 -3
  37. package/dist/chunk-PV3NVBGL.js.map +1 -0
  38. package/dist/{chunk-G3DMDTZI.js → chunk-RO4Y4BFI.js} +1511 -1135
  39. package/dist/chunk-RO4Y4BFI.js.map +1 -0
  40. package/dist/{chunk-WTT2KJOM.js → chunk-SA22NK56.js} +14 -10
  41. package/dist/chunk-SA22NK56.js.map +1 -0
  42. package/dist/{chunk-GZ7W64QU.cjs → chunk-VQB5P5KJ.cjs} +4 -3
  43. package/dist/chunk-VQB5P5KJ.cjs.map +1 -0
  44. package/dist/{chunk-7FCNOKOR.js → chunk-W34QSJFF.js} +1 -1
  45. package/dist/chunk-W34QSJFF.js.map +1 -0
  46. package/dist/{chunk-VEHC4EJL.js → chunk-YDCD4AV4.js} +5 -5
  47. package/dist/chunk-YDCD4AV4.js.map +1 -0
  48. package/dist/{chunk-NNDVFNMJ.js → chunk-YNJDNP44.js} +1 -1
  49. package/dist/chunk-YNJDNP44.js.map +1 -0
  50. package/dist/{chunk-3TSTZGCJ.js → chunk-ZJ75YDW7.js} +4 -3
  51. package/dist/chunk-ZJ75YDW7.js.map +1 -0
  52. package/dist/{chunk-6GM2QLM3.cjs → chunk-ZMKTKJZN.cjs} +21 -21
  53. package/dist/chunk-ZMKTKJZN.cjs.map +1 -0
  54. package/dist/{chunk-LM7C6HI2.js → chunk-ZSL6MQVE.js} +1 -1
  55. package/dist/chunk-ZSL6MQVE.js.map +1 -0
  56. package/dist/{chunk-KTPZYXN2.js → chunk-ZYYTU7NY.js} +2 -2
  57. package/dist/chunk-ZYYTU7NY.js.map +1 -0
  58. package/dist/chunks-JEYQWXIZ.js +10 -0
  59. package/dist/cli.js +75 -39
  60. package/dist/cli.js.map +1 -1
  61. package/dist/{formula-SXC6LRRC.js → formula-7ZPC54JO.js} +2 -2
  62. package/dist/formula-7ZPC54JO.js.map +1 -0
  63. package/dist/{formula-KSNAEBZ2.js → formula-EQRHSMYW.js} +2 -2
  64. package/dist/formula-EQRHSMYW.js.map +1 -0
  65. package/dist/{formula-SB3NHDUM.cjs → formula-IWV5IJ3Y.cjs} +8 -8
  66. package/dist/formula-IWV5IJ3Y.cjs.map +1 -0
  67. package/dist/{image-ocr-PS7XCV6K.js → image-ocr-6MO4FXJK.js} +8 -6
  68. package/dist/image-ocr-6MO4FXJK.js.map +1 -0
  69. package/dist/{image-ocr-J5656BEE.cjs → image-ocr-MGVXT6XD.cjs} +13 -11
  70. package/dist/image-ocr-MGVXT6XD.cjs.map +1 -0
  71. package/dist/{image-ocr-KZTNJ62U.js → image-ocr-TWUU2RNG.js} +10 -8
  72. package/dist/image-ocr-TWUU2RNG.js.map +1 -0
  73. package/dist/index.cjs +1993 -1845
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.cts +75 -4
  76. package/dist/index.d.ts +75 -4
  77. package/dist/index.js +2128 -1980
  78. package/dist/index.js.map +1 -1
  79. package/dist/mcp.js +123 -78
  80. package/dist/mcp.js.map +1 -1
  81. package/dist/{models-KA4GLQK5.js → models-6VMAVZR6.js} +3 -3
  82. package/dist/page-range-737B4EZW.js +0 -0
  83. package/dist/page-range-P7SDW6LR.cjs.map +1 -1
  84. package/dist/{parser-CSYU3CAW.cjs → parser-JFGLN4DA.cjs} +25 -25
  85. package/dist/parser-JFGLN4DA.cjs.map +1 -0
  86. package/dist/{parser-WNFWMBSL.js → parser-VR2BTUT7.js} +8 -8
  87. package/dist/parser-VR2BTUT7.js.map +1 -0
  88. package/dist/{parser-A34NAYKA.js → parser-YA7HSSPK.js} +6 -6
  89. package/dist/parser-YA7HSSPK.js.map +1 -0
  90. package/dist/pdf-ocr-4LISPZEM.cjs +13 -0
  91. package/dist/pdf-ocr-4LISPZEM.cjs.map +1 -0
  92. package/dist/pdf-ocr-AIWB2QCS.js +12 -0
  93. package/dist/pdf-ocr-QMOKUMC2.js +15 -0
  94. package/dist/{profile-io-43MF52H6.js → profile-io-QPIMGVO3.js} +3 -3
  95. package/dist/{rasterize-OG7KXBJS.js → rasterize-AFYGNKXG.js} +2 -2
  96. package/dist/rasterize-AFYGNKXG.js.map +1 -0
  97. package/dist/{redact-7ILEAUTS.js → redact-W5K3ILQH.js} +2 -2
  98. package/dist/render-PSPTMZIZ.js +10 -0
  99. package/dist/seal-4XBJ7ISE.js +10 -0
  100. package/dist/{setup-GUQT5ELJ.js → setup-I4I75QJU.js} +1 -1
  101. package/dist/setup-I4I75QJU.js.map +1 -0
  102. package/dist/{watch-SOHQMZN2.js → watch-D3JJEOAB.js} +12 -14
  103. package/dist/watch-D3JJEOAB.js.map +1 -0
  104. package/package.json +101 -98
  105. package/templates//352/260/204/354/235/264/352/270/260/354/225/210/353/254/270_/354/204/234/354/213/235.hwpx +0 -0
  106. package/templates//352/260/204/354/235/264/352/270/260/354/225/210/353/254/270_/354/230/210/354/213/234/352/260/222.json +9 -0
  107. package/templates//354/235/274/353/260/230/352/270/260/354/225/210/353/254/270_/354/204/234/354/213/235.hwpx +0 -0
  108. package/templates//354/235/274/353/260/230/352/270/260/354/225/210/353/254/270_/354/230/210/354/213/234/352/260/222.json +25 -0
  109. package/dist/chunk-27Z4PUZZ.js.map +0 -1
  110. package/dist/chunk-3PLF5UIS.js.map +0 -1
  111. package/dist/chunk-3TSTZGCJ.js.map +0 -1
  112. package/dist/chunk-4ZWKFDUC.cjs.map +0 -1
  113. package/dist/chunk-5RPYBC2Q.js.map +0 -1
  114. package/dist/chunk-6GM2QLM3.cjs.map +0 -1
  115. package/dist/chunk-7FCNOKOR.js.map +0 -1
  116. package/dist/chunk-7ZARSBQ3.js.map +0 -1
  117. package/dist/chunk-DZIXKL7E.js.map +0 -1
  118. package/dist/chunk-G3DMDTZI.js.map +0 -1
  119. package/dist/chunk-GEPINOL6.js.map +0 -1
  120. package/dist/chunk-GZ7W64QU.cjs.map +0 -1
  121. package/dist/chunk-H7OWEYH2.cjs.map +0 -1
  122. package/dist/chunk-J2RZ444H.js.map +0 -1
  123. package/dist/chunk-KTPZYXN2.js.map +0 -1
  124. package/dist/chunk-LM7C6HI2.js.map +0 -1
  125. package/dist/chunk-LXE7OR6N.js.map +0 -1
  126. package/dist/chunk-MHMVFI2N.js.map +0 -1
  127. package/dist/chunk-NIISBGSR.js.map +0 -1
  128. package/dist/chunk-NNDVFNMJ.js.map +0 -1
  129. package/dist/chunk-PATPZTH7.cjs.map +0 -1
  130. package/dist/chunk-STYN45MS.js.map +0 -1
  131. package/dist/chunk-TCJRGFYY.js +0 -280
  132. package/dist/chunk-TCJRGFYY.js.map +0 -1
  133. package/dist/chunk-VEHC4EJL.js.map +0 -1
  134. package/dist/chunk-WTT2KJOM.js.map +0 -1
  135. package/dist/chunk-XU4VWOKL.js.map +0 -1
  136. package/dist/chunk-YR4PF56B.js.map +0 -1
  137. package/dist/chunks-VFIMYK36.js +0 -10
  138. package/dist/detect-FX2ZHKZP.js +0 -26
  139. package/dist/formula-KSNAEBZ2.js.map +0 -1
  140. package/dist/formula-SB3NHDUM.cjs.map +0 -1
  141. package/dist/formula-SXC6LRRC.js.map +0 -1
  142. package/dist/image-ocr-J5656BEE.cjs.map +0 -1
  143. package/dist/image-ocr-KZTNJ62U.js.map +0 -1
  144. package/dist/image-ocr-PS7XCV6K.js.map +0 -1
  145. package/dist/parser-A34NAYKA.js.map +0 -1
  146. package/dist/parser-CSYU3CAW.cjs.map +0 -1
  147. package/dist/parser-WNFWMBSL.js.map +0 -1
  148. package/dist/pdf-ocr-KBMWPG2L.js +0 -12
  149. package/dist/pdf-ocr-NPZG67FN.js +0 -15
  150. package/dist/pdf-ocr-O44DAGTY.cjs +0 -13
  151. package/dist/pdf-ocr-O44DAGTY.cjs.map +0 -1
  152. package/dist/rasterize-OG7KXBJS.js.map +0 -1
  153. package/dist/render-336CJHAS.js +0 -10
  154. package/dist/seal-TM2XCE2R.js +0 -10
  155. package/dist/seal-TM2XCE2R.js.map +0 -1
  156. package/dist/setup-GUQT5ELJ.js.map +0 -1
  157. package/dist/watch-SOHQMZN2.js.map +0 -1
  158. /package/dist/{-ECUCTQTR.js.map → -RH6BEVTT.js.map} +0 -0
  159. /package/dist/{chunks-VFIMYK36.js.map → chunks-JEYQWXIZ.js.map} +0 -0
  160. /package/dist/{detect-FX2ZHKZP.js.map → models-6VMAVZR6.js.map} +0 -0
  161. /package/dist/{models-KA4GLQK5.js.map → pdf-ocr-AIWB2QCS.js.map} +0 -0
  162. /package/dist/{pdf-ocr-KBMWPG2L.js.map → pdf-ocr-QMOKUMC2.js.map} +0 -0
  163. /package/dist/{pdf-ocr-NPZG67FN.js.map → profile-io-QPIMGVO3.js.map} +0 -0
  164. /package/dist/{profile-io-43MF52H6.js.map → redact-W5K3ILQH.js.map} +0 -0
  165. /package/dist/{redact-7ILEAUTS.js.map → render-PSPTMZIZ.js.map} +0 -0
  166. /package/dist/{render-336CJHAS.js.map → seal-4XBJ7ISE.js.map} +0 -0
package/package.json CHANGED
@@ -1,98 +1,101 @@
1
- {
2
- "name": "kordoc",
3
- "version": "4.2.9",
4
- "description": "Parse Korean documents (HWP3-5, HWPX, HWPML, PDF, XLS(X), DOCX) to Markdown — CLI + MCP server with lossless patch/roundtrip, form-filler, document diff, print & layout-preserving SVG renderer",
5
- "type": "module",
6
- "exports": {
7
- ".": {
8
- "types": "./dist/index.d.ts",
9
- "import": "./dist/index.js",
10
- "require": "./dist/index.cjs"
11
- }
12
- },
13
- "main": "./dist/index.cjs",
14
- "module": "./dist/index.js",
15
- "types": "./dist/index.d.ts",
16
- "bin": {
17
- "kordoc": "./dist/cli.js",
18
- "kordoc-mcp": "./dist/mcp.js"
19
- },
20
- "files": [
21
- "dist"
22
- ],
23
- "scripts": {
24
- "build": "tsup",
25
- "dev": "tsup --watch",
26
- "test": "node --import tsx --test tests/*.test.ts",
27
- "bench:gate": "node bench/score.mjs && node bench/roundtrip.mjs --gate && node bench/pdf-table-gt.mjs --gate && node bench/formats-sweep.mjs --gate && node bench/fuzz-sweep.mjs --gate && node bench/verify-reflow.mjs --gate",
28
- "bench:visual": "node bench/visual/verify-visual.mjs --gate",
29
- "prepublishOnly": "npm run test && npm run build && npm run bench:gate"
30
- },
31
- "keywords": [
32
- "hwp",
33
- "hwpx",
34
- "hancom",
35
- "hangul",
36
- "korean",
37
- "document",
38
- "parser",
39
- "pdf",
40
- "xls",
41
- "xlsx",
42
- "biff8",
43
- "docx",
44
- "markdown",
45
- "converter",
46
- "ocr",
47
- "mcp",
48
- "model-context-protocol",
49
- "print",
50
- "puppeteer"
51
- ],
52
- "author": "chrisryugj",
53
- "license": "MIT",
54
- "repository": {
55
- "type": "git",
56
- "url": "https://github.com/chrisryugj/kordoc.git"
57
- },
58
- "engines": {
59
- "node": ">=18"
60
- },
61
- "dependencies": {
62
- "@modelcontextprotocol/sdk": "^1.29.0",
63
- "@xmldom/xmldom": "^0.9.10",
64
- "cfb": "1.2.2",
65
- "commander": "^13.0.0",
66
- "jszip": "^3.10.1",
67
- "markdown-it": "^14.3.0",
68
- "zod": "^3.23.0"
69
- },
70
- "peerDependencies": {
71
- "puppeteer-core": ">=22.0.0"
72
- },
73
- "peerDependenciesMeta": {
74
- "puppeteer-core": {
75
- "optional": true
76
- }
77
- },
78
- "optionalDependencies": {
79
- "@huggingface/transformers": "^4.1.0",
80
- "@hyzyla/pdfium": "^2.1.0",
81
- "onnxruntime-node": "^1.24.0",
82
- "pdfjs-dist": "^4.10.38",
83
- "sharp": "^0.34.0"
84
- },
85
- "devDependencies": {
86
- "@huggingface/transformers": "^4.1.0",
87
- "@hyzyla/pdfium": "^2.1.0",
88
- "@types/markdown-it": "^14.1.2",
89
- "@types/node": "^18.19.130",
90
- "onnxruntime-node": "^1.24.0",
91
- "pdfjs-dist": "^4.10.38",
92
- "puppeteer-core": "^24.42.0",
93
- "sharp": "^0.34.0",
94
- "tsup": "^8.4.0",
95
- "tsx": "^4.21.0",
96
- "typescript": "^5.9.0"
97
- }
98
- }
1
+ {
2
+ "name": "kordoc",
3
+ "version": "4.3.1",
4
+ "description": "Parse Korean documents (HWP3-5, HWPX, HWPML, PDF, XLS(X), DOCX) to Markdown — CLI + MCP server with lossless patch/roundtrip, form-filler, document diff, print & layout-preserving SVG renderer",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js",
10
+ "require": "./dist/index.cjs"
11
+ }
12
+ },
13
+ "main": "./dist/index.cjs",
14
+ "module": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "bin": {
17
+ "kordoc": "./dist/cli.js",
18
+ "kordoc-mcp": "./dist/mcp.js"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "templates"
23
+ ],
24
+ "scripts": {
25
+ "build": "tsup",
26
+ "dev": "tsup --watch",
27
+ "test": "node --import tsx --test tests/*.test.ts",
28
+ "typecheck": "tsc --noEmit",
29
+ "bench:gate": "node bench/score.mjs && node bench/roundtrip.mjs --gate && node bench/pdf-table-gt.mjs --gate && node bench/formats-sweep.mjs --gate && node bench/fuzz-sweep.mjs --gate && node bench/verify-reflow.mjs --gate",
30
+ "bench:visual": "node bench/visual/verify-visual.mjs --gate",
31
+ "sync-meta": "node scripts/sync-meta.mjs",
32
+ "prepublishOnly": "node scripts/sync-meta.mjs --check && npm run typecheck && npm run test && npm run build && node bench/gate-if-corpus.mjs"
33
+ },
34
+ "keywords": [
35
+ "hwp",
36
+ "hwpx",
37
+ "hancom",
38
+ "hangul",
39
+ "korean",
40
+ "document",
41
+ "parser",
42
+ "pdf",
43
+ "xls",
44
+ "xlsx",
45
+ "biff8",
46
+ "docx",
47
+ "markdown",
48
+ "converter",
49
+ "ocr",
50
+ "mcp",
51
+ "model-context-protocol",
52
+ "print",
53
+ "puppeteer"
54
+ ],
55
+ "author": "chrisryugj",
56
+ "license": "MIT",
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "https://github.com/chrisryugj/kordoc.git"
60
+ },
61
+ "engines": {
62
+ "node": ">=18"
63
+ },
64
+ "dependencies": {
65
+ "@modelcontextprotocol/sdk": "^1.29.0",
66
+ "@xmldom/xmldom": "^0.9.10",
67
+ "cfb": "1.2.2",
68
+ "commander": "^13.0.0",
69
+ "jszip": "^3.10.1",
70
+ "markdown-it": "^14.3.0",
71
+ "zod": "^3.23.0"
72
+ },
73
+ "peerDependencies": {
74
+ "puppeteer-core": ">=22.0.0"
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "puppeteer-core": {
78
+ "optional": true
79
+ }
80
+ },
81
+ "optionalDependencies": {
82
+ "@huggingface/transformers": "^4.1.0",
83
+ "@hyzyla/pdfium": "^2.1.0",
84
+ "onnxruntime-node": "^1.24.0",
85
+ "pdfjs-dist": "^4.10.38",
86
+ "sharp": "^0.34.0"
87
+ },
88
+ "devDependencies": {
89
+ "@huggingface/transformers": "^4.1.0",
90
+ "@hyzyla/pdfium": "^2.1.0",
91
+ "@types/markdown-it": "^14.1.2",
92
+ "@types/node": "^18.19.130",
93
+ "onnxruntime-node": "^1.24.0",
94
+ "pdfjs-dist": "^4.10.38",
95
+ "puppeteer-core": "^24.42.0",
96
+ "sharp": "^0.34.0",
97
+ "tsup": "^8.4.0",
98
+ "tsx": "^4.21.0",
99
+ "typescript": "^5.9.0"
100
+ }
101
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "생산등록번호": "○○과-1234", "등록일": "2026. 7. 26.", "결재일": "2026. 7. 26.", "공개구분": "공개",
3
+ "결재직위1": "주무관", "결재직위2": "과장", "결재직위3": "국장", "결재직위4": "차관",
4
+ "협조자": "○○과장 ○○○",
5
+ "제목": "2026년 ○○ 시범사업 추진계획 보고",
6
+ "요약설명": "보고근거: ○○법 제00조. 시범사업 추진계획을 별첨과 같이 보고함.",
7
+ "작성일": "2026. 7. 26.",
8
+ "작성기관": "○○○○부 ○○○○국"
9
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "행정기관명": "○○부",
3
+ "수신자": "수신자 참조",
4
+ "경유": "",
5
+ "제목": "2026년 행정업무 자동화 시범사업 협조 요청",
6
+ "본문": "1. 관련: ○○부 ○○과-1234(2026. 7. 20.)\n2. 우리 부는 행정업무의 효율적 운영을 위하여 다음과 같이 시범사업을 추진하오니 협조하여 주시기 바랍니다.\n 가. 사업명: 행정문서 자동화 시범사업\n 나. 기간: 2026. 8. 1. ~ 12. 31.\n 다. 대상: 중앙행정기관 및 지방자치단체",
7
+ "붙임": "시범사업 계획서",
8
+ "발신명의": "○○부장관",
9
+ "수신자명단": "각 중앙행정기관의 장",
10
+ "기안자": "행정사무관 ○○○",
11
+ "검토자": "과장 ○○○",
12
+ "결재권자": "국장 ○○○",
13
+ "협조자": "",
14
+ "시행번호": "○○과-5678",
15
+ "시행일": "2026. 7. 26.",
16
+ "접수번호": "",
17
+ "접수일": "",
18
+ "우편번호": "30112",
19
+ "주소": "세종특별자치시 ○○로 13",
20
+ "홈페이지": "www.example.go.kr",
21
+ "전화번호": "044-000-0000",
22
+ "팩스번호": "044-000-0001",
23
+ "전자우편": "example@korea.kr",
24
+ "공개구분": "공개"
25
+ }