kordoc 4.19.2 → 4.20.0

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 (124) hide show
  1. package/NOTICE +25 -0
  2. package/README.md +2 -1
  3. package/THIRD_PARTY/hwp-auto-docfit.LICENSE +23 -0
  4. package/dist/{-3JIHF2AL.js → -TTRGLREH.js} +11 -11
  5. package/dist/{chunk-I2TBI7PN.js → chunk-2U475PJF.js} +2 -2
  6. package/dist/{chunk-R2JM2HOJ.js → chunk-4DIMX2KU.js} +4 -4
  7. package/dist/{chunk-GNUGD4RO.js → chunk-4WOG2SLT.js} +2 -2
  8. package/dist/{chunk-QZ63HXEG.js → chunk-527NBMUE.js} +6 -6
  9. package/dist/{chunk-PWQ2BVAT.js → chunk-7H5GT7HM.js} +22 -3
  10. package/dist/{chunk-PWQ2BVAT.js.map → chunk-7H5GT7HM.js.map} +1 -1
  11. package/dist/{chunk-T2DZTOGG.cjs → chunk-AXQDWE42.cjs} +12 -12
  12. package/dist/{chunk-T2DZTOGG.cjs.map → chunk-AXQDWE42.cjs.map} +1 -1
  13. package/dist/{chunk-ORGWGR4K.cjs → chunk-CJFIHH2N.cjs} +6 -6
  14. package/dist/{chunk-ORGWGR4K.cjs.map → chunk-CJFIHH2N.cjs.map} +1 -1
  15. package/dist/{chunk-XPM7WC54.js → chunk-CKFKC22O.js} +4 -4
  16. package/dist/{chunk-JK7N4R4K.js → chunk-CPZ2LLZA.js} +2 -2
  17. package/dist/{chunk-6ZBORHFB.js → chunk-CS2VWXDS.js} +2 -2
  18. package/dist/{chunk-EUCBMW6C.js → chunk-DPD2L5UK.js} +3 -3
  19. package/dist/{chunk-AOVMOCTK.js → chunk-GHAJHXYA.js} +2 -2
  20. package/dist/{chunk-4CS7XE2Q.js → chunk-JYV3XQYW.js} +2 -2
  21. package/dist/{chunk-MZ6XNFZL.cjs → chunk-K5GCIB2I.cjs} +2 -2
  22. package/dist/{chunk-MZ6XNFZL.cjs.map → chunk-K5GCIB2I.cjs.map} +1 -1
  23. package/dist/{chunk-5PGOZBEQ.cjs → chunk-KDCPBF4X.cjs} +22 -22
  24. package/dist/{chunk-5PGOZBEQ.cjs.map → chunk-KDCPBF4X.cjs.map} +1 -1
  25. package/dist/{chunk-NV46IWKF.js → chunk-LQ4IDHET.js} +234 -24
  26. package/dist/chunk-LQ4IDHET.js.map +1 -0
  27. package/dist/{chunk-U6AJU2VD.js → chunk-MNPPMJBN.js} +2 -2
  28. package/dist/{chunk-J75TVRJB.js → chunk-MXADBQ7E.js} +2 -2
  29. package/dist/{chunk-B4R443MV.js → chunk-NVBX2NKZ.js} +2 -2
  30. package/dist/{chunk-TM4T4NYJ.js → chunk-OX5FA2MU.js} +2 -2
  31. package/dist/{chunk-WQAGDJIP.cjs → chunk-RMDFN5ZF.cjs} +3 -3
  32. package/dist/{chunk-WQAGDJIP.cjs.map → chunk-RMDFN5ZF.cjs.map} +1 -1
  33. package/dist/{chunk-QYJPU4FZ.js → chunk-TM7IOP4P.js} +2 -2
  34. package/dist/{chunk-OKHKEYTL.js → chunk-URQM5TBD.js} +2 -2
  35. package/dist/{chunk-VO22VAR3.js → chunk-VVKMBLG2.js} +2 -2
  36. package/dist/{chunk-JXJDXDOU.js → chunk-WLNEQGQC.js} +3 -3
  37. package/dist/{chunk-56ZWAREM.js → chunk-WLWWODBQ.js} +2 -2
  38. package/dist/{chunk-RVBQT2PD.cjs → chunk-WWOU6ZQ3.cjs} +3 -3
  39. package/dist/{chunk-RVBQT2PD.cjs.map → chunk-WWOU6ZQ3.cjs.map} +1 -1
  40. package/dist/{chunk-AKSCTGKG.js → chunk-X5YHJHWB.js} +2 -2
  41. package/dist/chunks-3NIFJFRQ.js +10 -0
  42. package/dist/cli.js +366 -44
  43. package/dist/cli.js.map +1 -1
  44. package/dist/{formula-STIFIS57.js → formula-D6GGALWI.js} +3 -3
  45. package/dist/{formula-RNATQ3FQ.cjs → formula-FE6LEZTT.cjs} +9 -9
  46. package/dist/{formula-RNATQ3FQ.cjs.map → formula-FE6LEZTT.cjs.map} +1 -1
  47. package/dist/{formula-RSTTP626.js → formula-KWOAYEOG.js} +4 -4
  48. package/dist/{image-ocr-XKSAEEXP.js → image-ocr-XDODV43Y.js} +9 -9
  49. package/dist/{image-ocr-7L5TBBPA.cjs → image-ocr-XGGIYCZ2.cjs} +15 -15
  50. package/dist/{image-ocr-7L5TBBPA.cjs.map → image-ocr-XGGIYCZ2.cjs.map} +1 -1
  51. package/dist/{image-ocr-R6ZDFBAN.js → image-ocr-YYTFOUSY.js} +6 -6
  52. package/dist/index.cjs +682 -459
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +5 -0
  55. package/dist/index.d.ts +5 -0
  56. package/dist/index.js +242 -19
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp.js +22 -22
  59. package/dist/{model-bundle-NGTKULP7.js → model-bundle-WPFLIKYM.js} +5 -5
  60. package/dist/{models-QOSU5SYL.js → models-WJ5QYELV.js} +5 -5
  61. package/dist/{parser-AIQBU7FS.cjs → parser-6P5ZRWXG.cjs} +132 -132
  62. package/dist/{parser-AIQBU7FS.cjs.map → parser-6P5ZRWXG.cjs.map} +1 -1
  63. package/dist/{parser-5GUEP6EK.js → parser-LY67CB7A.js} +8 -8
  64. package/dist/{parser-3G4G6SST.js → parser-QKLUIMHG.js} +11 -11
  65. package/dist/pdf-ocr-6L4EDRVO.js +20 -0
  66. package/dist/pdf-ocr-J7DHJJ3I.js +16 -0
  67. package/dist/pdf-ocr-MODN6GBT.cjs +17 -0
  68. package/dist/{pdf-ocr-7OAFUDM4.cjs.map → pdf-ocr-MODN6GBT.cjs.map} +1 -1
  69. package/dist/{profile-io-ZVNMDLLS.js → profile-io-I4ORJOE4.js} +3 -3
  70. package/dist/{rasterize-Y2RLMVCL.js → rasterize-MZU5LIA5.js} +3 -3
  71. package/dist/{redact-doc-PNRDDBI3.js → redact-doc-NEUEBXFH.js} +11 -11
  72. package/dist/{render-S3ALARVO.js → render-IL2DYXDP.js} +7 -7
  73. package/dist/seal-O5DKZGTR.js +10 -0
  74. package/dist/{setup-JH66VSFZ.js → setup-PGOCB7YG.js} +3 -3
  75. package/dist/visual-PYV4ZMLH.js +20 -0
  76. package/dist/{watch-KMB2FTOD.js → watch-2F5AMHCW.js} +12 -12
  77. package/package.json +1 -1
  78. package/dist/chunk-NV46IWKF.js.map +0 -1
  79. package/dist/chunks-2EC2R7PY.js +0 -10
  80. package/dist/pdf-ocr-7OAFUDM4.cjs +0 -17
  81. package/dist/pdf-ocr-DAXS5RX4.js +0 -16
  82. package/dist/pdf-ocr-R3VGX6F2.js +0 -20
  83. package/dist/seal-EJWPS5VK.js +0 -10
  84. package/dist/visual-GDXMKDVY.js +0 -20
  85. /package/dist/{-3JIHF2AL.js.map → -TTRGLREH.js.map} +0 -0
  86. /package/dist/{chunk-I2TBI7PN.js.map → chunk-2U475PJF.js.map} +0 -0
  87. /package/dist/{chunk-R2JM2HOJ.js.map → chunk-4DIMX2KU.js.map} +0 -0
  88. /package/dist/{chunk-GNUGD4RO.js.map → chunk-4WOG2SLT.js.map} +0 -0
  89. /package/dist/{chunk-QZ63HXEG.js.map → chunk-527NBMUE.js.map} +0 -0
  90. /package/dist/{chunk-XPM7WC54.js.map → chunk-CKFKC22O.js.map} +0 -0
  91. /package/dist/{chunk-JK7N4R4K.js.map → chunk-CPZ2LLZA.js.map} +0 -0
  92. /package/dist/{chunk-6ZBORHFB.js.map → chunk-CS2VWXDS.js.map} +0 -0
  93. /package/dist/{chunk-EUCBMW6C.js.map → chunk-DPD2L5UK.js.map} +0 -0
  94. /package/dist/{chunk-AOVMOCTK.js.map → chunk-GHAJHXYA.js.map} +0 -0
  95. /package/dist/{chunk-4CS7XE2Q.js.map → chunk-JYV3XQYW.js.map} +0 -0
  96. /package/dist/{chunk-U6AJU2VD.js.map → chunk-MNPPMJBN.js.map} +0 -0
  97. /package/dist/{chunk-J75TVRJB.js.map → chunk-MXADBQ7E.js.map} +0 -0
  98. /package/dist/{chunk-B4R443MV.js.map → chunk-NVBX2NKZ.js.map} +0 -0
  99. /package/dist/{chunk-TM4T4NYJ.js.map → chunk-OX5FA2MU.js.map} +0 -0
  100. /package/dist/{chunk-QYJPU4FZ.js.map → chunk-TM7IOP4P.js.map} +0 -0
  101. /package/dist/{chunk-OKHKEYTL.js.map → chunk-URQM5TBD.js.map} +0 -0
  102. /package/dist/{chunk-VO22VAR3.js.map → chunk-VVKMBLG2.js.map} +0 -0
  103. /package/dist/{chunk-JXJDXDOU.js.map → chunk-WLNEQGQC.js.map} +0 -0
  104. /package/dist/{chunk-56ZWAREM.js.map → chunk-WLWWODBQ.js.map} +0 -0
  105. /package/dist/{chunk-AKSCTGKG.js.map → chunk-X5YHJHWB.js.map} +0 -0
  106. /package/dist/{chunks-2EC2R7PY.js.map → chunks-3NIFJFRQ.js.map} +0 -0
  107. /package/dist/{formula-STIFIS57.js.map → formula-D6GGALWI.js.map} +0 -0
  108. /package/dist/{formula-RSTTP626.js.map → formula-KWOAYEOG.js.map} +0 -0
  109. /package/dist/{image-ocr-XKSAEEXP.js.map → image-ocr-XDODV43Y.js.map} +0 -0
  110. /package/dist/{image-ocr-R6ZDFBAN.js.map → image-ocr-YYTFOUSY.js.map} +0 -0
  111. /package/dist/{model-bundle-NGTKULP7.js.map → model-bundle-WPFLIKYM.js.map} +0 -0
  112. /package/dist/{models-QOSU5SYL.js.map → models-WJ5QYELV.js.map} +0 -0
  113. /package/dist/{parser-5GUEP6EK.js.map → parser-LY67CB7A.js.map} +0 -0
  114. /package/dist/{parser-3G4G6SST.js.map → parser-QKLUIMHG.js.map} +0 -0
  115. /package/dist/{pdf-ocr-DAXS5RX4.js.map → pdf-ocr-6L4EDRVO.js.map} +0 -0
  116. /package/dist/{pdf-ocr-R3VGX6F2.js.map → pdf-ocr-J7DHJJ3I.js.map} +0 -0
  117. /package/dist/{profile-io-ZVNMDLLS.js.map → profile-io-I4ORJOE4.js.map} +0 -0
  118. /package/dist/{rasterize-Y2RLMVCL.js.map → rasterize-MZU5LIA5.js.map} +0 -0
  119. /package/dist/{redact-doc-PNRDDBI3.js.map → redact-doc-NEUEBXFH.js.map} +0 -0
  120. /package/dist/{render-S3ALARVO.js.map → render-IL2DYXDP.js.map} +0 -0
  121. /package/dist/{seal-EJWPS5VK.js.map → seal-O5DKZGTR.js.map} +0 -0
  122. /package/dist/{setup-JH66VSFZ.js.map → setup-PGOCB7YG.js.map} +0 -0
  123. /package/dist/{visual-GDXMKDVY.js.map → visual-PYV4ZMLH.js.map} +0 -0
  124. /package/dist/{watch-KMB2FTOD.js.map → watch-2F5AMHCW.js.map} +0 -0
package/NOTICE CHANGED
@@ -174,3 +174,28 @@ Used in:
174
174
 
175
175
  You may obtain a copy of the MIT License at:
176
176
  https://opensource.org/licenses/MIT
177
+
178
+ ================================================================================
179
+
180
+ hwp-auto-docfit
181
+ https://github.com/haijun93/hwp-auto-docfit
182
+
183
+ Copyright (c) 2026 haijun93 (마포구청 공혁준)
184
+ Licensed under the MIT License
185
+
186
+ Used in:
187
+ - src/hwpx/gongmun-lint.ts — 기간 대시·요일·"끝."/붙임 2타 규칙 착안, 공공언어 쉬운 말·맞춤법
188
+ 낱말표와 조사 경계식 (document_rules.py·writing_aids.py·korean_proofread.py)
189
+ - src/hwpx/paste-clean.ts — 생성형 AI 붙여넣기 흔적(보이지 않는 글자·† 인용 표시·이스케이프된 굵게) 정리 규칙 착안 (pasted_text.py)
190
+ - src/hwpx/gongmun-typo.ts — 열거 뒤 '등'·'낱말 숫자,' 열거 묶음 빈칸 규칙 착안
191
+ - src/hwpx/number-lint.ts — 본문 수치 ↔ 표 수치 대조 범위·임계값 (number_check.py)
192
+ - src/hwpx/level-styles.ts — 단계별 대표 서식 투표 임계값과 편차 검수 (style_unify.py·document_review.py)
193
+ - src/roundtrip/integrity.ts — 패치 결과 다층 무결성 검사 착안 (fidelity/verify.py)
194
+
195
+ Modifications:
196
+ - TypeScript 재구현(규칙·임계값은 kordoc 코퍼스로 다시 확인), 한/글 COM 의존 없음
197
+
198
+ 라이선스 전문: THIRD_PARTY/hwp-auto-docfit.LICENSE
199
+
200
+ You may obtain a copy of the MIT License at:
201
+ https://opensource.org/licenses/MIT
package/README.md CHANGED
@@ -111,10 +111,11 @@ await writeFile("보고서.hwpx", Buffer.from(hwpx))
111
111
 
112
112
  ## 최근 업데이트
113
113
 
114
- 최신 배포: **[4.19.2](https://github.com/chrisryugj/kordoc/releases/tag/v4.19.2)** · 2026-10-07
114
+ 최신 배포: **[4.20.0](https://github.com/chrisryugj/kordoc/releases/tag/v4.20.0)** · 2026-10-08
115
115
 
116
116
  | 버전 | 주요 변경 |
117
117
  | --- | --- |
118
+ | 4.20.0 | 표기법 검수 7룰(기간 대시·요일·금액 한글·공공언어·맞춤법·2타)과 문서 직접 검수·수치 대조·단계별 서식 편차, 견본 HWPX 단계별 서식 학습(`levels`·`--levels-from`), `compare`·`patch --json`, 패치 무결성 검사, 붙여넣기 흔적 정리 |
118
119
  | 4.19.2 | rhwp v0.8.7 파서 수정 반영 — HWP3 체크박스 □, HWP5 짝 없는 서로게이트 □, 손상 CFB 복구의 본문 경로 오인 수정, HWPX 압축 해제 상한을 엔트리 읽는 도중에 적용 |
119
120
  | 4.19.1 | PDF 쪽별 마크다운(`pages`)에서 쪽 넘김 표를 쪽마다 다시 갈라 뒤 쪽 행·상자가 앞 쪽에 붙거나 쪽 항목이 빠지지 않게 (#136) |
120
121
  | 4.19.0 | RAG 색인용 `tableFormat: "gfm"` — 병합·중첩 표도 HTML 없이 GFM 파이프 표로, 셀 안 표는 부모·자식 관계 표지와 함께 독립 표로 (#138) |
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 haijun93 (마포구청 공혁준)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ Third-party components keep their own licenses. See THIRD_PARTY_NOTICES.md.
@@ -51,17 +51,17 @@ import {
51
51
  unknownFontWarnings,
52
52
  usesGaejosikMunche,
53
53
  validateHwpx
54
- } from "./chunk-NV46IWKF.js";
54
+ } from "./chunk-LQ4IDHET.js";
55
55
  import {
56
56
  blocksToPages
57
- } from "./chunk-VO22VAR3.js";
57
+ } from "./chunk-VVKMBLG2.js";
58
58
  import {
59
59
  applySplices,
60
60
  buildParagraphSplices,
61
61
  buildRangeSplices,
62
62
  placeSealHwpx,
63
63
  scanSectionXml
64
- } from "./chunk-PWQ2BVAT.js";
64
+ } from "./chunk-7H5GT7HM.js";
65
65
  import {
66
66
  DEFAULT_REDACT_RULES,
67
67
  redactMarkdown,
@@ -69,7 +69,7 @@ import {
69
69
  } from "./chunk-3WSNLH4B.js";
70
70
  import {
71
71
  blocksToChunks
72
- } from "./chunk-TM4T4NYJ.js";
72
+ } from "./chunk-OX5FA2MU.js";
73
73
  import {
74
74
  SPACE_EM_FIXED,
75
75
  SPACE_EM_FONT,
@@ -94,20 +94,20 @@ import {
94
94
  renderSceneToHtml,
95
95
  simulateWrap,
96
96
  simulateWrapKeepWord
97
- } from "./chunk-QZ63HXEG.js";
97
+ } from "./chunk-527NBMUE.js";
98
98
  import "./chunk-7FCNOKOR.js";
99
- import "./chunk-AOVMOCTK.js";
99
+ import "./chunk-GHAJHXYA.js";
100
100
  import "./chunk-VQFA55IC.js";
101
- import "./chunk-QYJPU4FZ.js";
101
+ import "./chunk-TM7IOP4P.js";
102
102
  import {
103
103
  blocksToMarkdown,
104
104
  flattenLayoutTables,
105
105
  hasStructuredCellContent
106
- } from "./chunk-B4R443MV.js";
107
- import "./chunk-6ZBORHFB.js";
106
+ } from "./chunk-NVBX2NKZ.js";
107
+ import "./chunk-CS2VWXDS.js";
108
108
  import {
109
109
  VERSION
110
- } from "./chunk-OKHKEYTL.js";
110
+ } from "./chunk-URQM5TBD.js";
111
111
  export {
112
112
  BUILTIN_TEMPLATES,
113
113
  DEFAULT_REDACT_RULES,
@@ -198,4 +198,4 @@ export {
198
198
  usesGaejosikMunche,
199
199
  validateHwpx
200
200
  };
201
- //# sourceMappingURL=-3JIHF2AL.js.map
201
+ //# sourceMappingURL=-TTRGLREH.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  KordocError
4
- } from "./chunk-OKHKEYTL.js";
4
+ } from "./chunk-URQM5TBD.js";
5
5
 
6
6
  // src/shared/offline.ts
7
7
  import { realpathSync } from "fs";
@@ -49,4 +49,4 @@ export {
49
49
  getAccessRoot,
50
50
  assertWithinRoot
51
51
  };
52
- //# sourceMappingURL=chunk-I2TBI7PN.js.map
52
+ //# sourceMappingURL=chunk-2U475PJF.js.map
@@ -4,15 +4,15 @@ import {
4
4
  HEADING_RATIO_H2,
5
5
  HEADING_RATIO_H3,
6
6
  tidyScriptTags
7
- } from "./chunk-AKSCTGKG.js";
7
+ } from "./chunk-X5YHJHWB.js";
8
8
  import {
9
9
  ensureModelsIn,
10
10
  getModelsDir
11
- } from "./chunk-GNUGD4RO.js";
11
+ } from "./chunk-4WOG2SLT.js";
12
12
  import {
13
13
  safeMax,
14
14
  safeMin
15
- } from "./chunk-J75TVRJB.js";
15
+ } from "./chunk-MXADBQ7E.js";
16
16
 
17
17
  // src/ocr/models.ts
18
18
  import { join } from "path";
@@ -8378,4 +8378,4 @@ export {
8378
8378
  removeSideTabs,
8379
8379
  extractPageBlocksWithLines
8380
8380
  };
8381
- //# sourceMappingURL=chunk-R2JM2HOJ.js.map
8381
+ //# sourceMappingURL=chunk-4DIMX2KU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  KordocError
3
- } from "./chunk-J75TVRJB.js";
3
+ } from "./chunk-MXADBQ7E.js";
4
4
 
5
5
  // src/pdf/formula/models.ts
6
6
  import { createHash as createHash2 } from "crypto";
@@ -308,4 +308,4 @@ export {
308
308
  ensureFormulaModels,
309
309
  ensureSingleModel
310
310
  };
311
- //# sourceMappingURL=chunk-GNUGD4RO.js.map
311
+ //# sourceMappingURL=chunk-4WOG2SLT.js.map
@@ -9,7 +9,7 @@ import {
9
9
  HEADING_RATIO_H3,
10
10
  tidyScriptTags,
11
11
  unframeLayoutTables
12
- } from "./chunk-AOVMOCTK.js";
12
+ } from "./chunk-GHAJHXYA.js";
13
13
  import {
14
14
  parsePageRange
15
15
  } from "./chunk-VQFA55IC.js";
@@ -22,7 +22,7 @@ import {
22
22
  findChildByLocalName,
23
23
  hwpFaceToCssStack,
24
24
  parseRenderStyles
25
- } from "./chunk-QYJPU4FZ.js";
25
+ } from "./chunk-TM7IOP4P.js";
26
26
  import {
27
27
  MAX_COLS,
28
28
  MAX_ROWS,
@@ -33,18 +33,18 @@ import {
33
33
  flattenLayoutTables,
34
34
  mapPuaText,
35
35
  markNonLayoutTable
36
- } from "./chunk-B4R443MV.js";
36
+ } from "./chunk-NVBX2NKZ.js";
37
37
  import {
38
38
  loadSharp,
39
39
  rasterizePageSvg
40
- } from "./chunk-6ZBORHFB.js";
40
+ } from "./chunk-CS2VWXDS.js";
41
41
  import {
42
42
  KordocError,
43
43
  escapeHtml,
44
44
  precheckZipSize,
45
45
  sanitizeHref,
46
46
  toArrayBuffer
47
- } from "./chunk-OKHKEYTL.js";
47
+ } from "./chunk-URQM5TBD.js";
48
48
 
49
49
  // src/render/svg-render.ts
50
50
  import JSZip from "jszip";
@@ -7801,4 +7801,4 @@ export {
7801
7801
  cropRect,
7802
7802
  extractRenderedRegions
7803
7803
  };
7804
- //# sourceMappingURL=chunk-QZ63HXEG.js.map
7804
+ //# sourceMappingURL=chunk-527NBMUE.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  parseRenderStyles
4
- } from "./chunk-QYJPU4FZ.js";
4
+ } from "./chunk-TM7IOP4P.js";
5
5
  import {
6
6
  KordocError,
7
7
  precheckZipSize
8
- } from "./chunk-OKHKEYTL.js";
8
+ } from "./chunk-URQM5TBD.js";
9
9
 
10
10
  // src/form/seal.ts
11
11
  import JSZip from "jszip";
@@ -541,6 +541,24 @@ var EOCD_SIG = 101010256;
541
541
  var CD_SIG = 33639248;
542
542
  var LOCAL_SIG = 67324752;
543
543
  var ZIP64_EOCD_LOC_SIG = 117853008;
544
+ function readZipEntries(buf) {
545
+ const { entries } = parseCentralDirectory(buf);
546
+ const result = /* @__PURE__ */ new Map();
547
+ const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
548
+ for (const e of entries) {
549
+ const dataStart = localDataStart(view, e.localOffset);
550
+ result.set(e.name, { method: e.method, compData: buf.subarray(dataStart, dataStart + e.compSize) });
551
+ }
552
+ return result;
553
+ }
554
+ function localDataStart(view, localOffset) {
555
+ if (view.getUint32(localOffset, true) !== LOCAL_SIG) {
556
+ throw new KordocError("ZIP \uB85C\uCEEC \uD5E4\uB354 \uC2DC\uADF8\uB2C8\uCC98 \uBD88\uC77C\uCE58");
557
+ }
558
+ const nameLen = view.getUint16(localOffset + 26, true);
559
+ const extraLen = view.getUint16(localOffset + 28, true);
560
+ return localOffset + 30 + nameLen + extraLen;
561
+ }
544
562
  function copyBytes(buf, start, end) {
545
563
  return new Uint8Array(buf.subarray(start, end));
546
564
  }
@@ -1054,7 +1072,8 @@ export {
1054
1072
  buildRangeSplices,
1055
1073
  allLinesegRemovalSplices,
1056
1074
  applySplices,
1075
+ readZipEntries,
1057
1076
  patchZipEntries,
1058
1077
  placeSealHwpx
1059
1078
  };
1060
- //# sourceMappingURL=chunk-PWQ2BVAT.js.map
1079
+ //# sourceMappingURL=chunk-7H5GT7HM.js.map