@clazic/kordoc 2.1.3 → 2.1.4
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 +79 -7
- package/dist/{chunk-P7ZKUWEP.js → chunk-N2UPMKGJ.js} +9 -9
- package/dist/{chunk-P7ZKUWEP.js.map → chunk-N2UPMKGJ.js.map} +1 -1
- package/dist/{chunk-WQNXZXC4.js → chunk-NNYD6QUN.js} +2 -2
- package/dist/cli.js +4 -4
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +2 -2
- package/dist/{utils-G5QGECZV.js → utils-7VR5ORIC.js} +2 -2
- package/dist/{watch-F4ZAMRJ2.js → watch-5RZ4YQPC.js} +3 -3
- package/package.json +1 -1
- /package/dist/{chunk-WQNXZXC4.js.map → chunk-NNYD6QUN.js.map} +0 -0
- /package/dist/{utils-G5QGECZV.js.map → utils-7VR5ORIC.js.map} +0 -0
- /package/dist/{watch-F4ZAMRJ2.js.map → watch-5RZ4YQPC.js.map} +0 -0
package/README.md
CHANGED
|
@@ -192,28 +192,69 @@ kordoc watch ./수신함 -d ./변환결과 # 폴더 감시 모드
|
|
|
192
192
|
kordoc watch ./문서 --webhook https://api/hook # 웹훅 알림
|
|
193
193
|
```
|
|
194
194
|
|
|
195
|
-
## MCP 서버
|
|
195
|
+
## MCP 서버
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
AI 도구에서 직접 문서를 파싱할 수 있습니다. **로컬 MCP**와 **원격 MCP** 두 가지 방식을 지원합니다.
|
|
198
|
+
|
|
199
|
+
| | 로컬 MCP | 원격 MCP |
|
|
200
|
+
|---|---|---|
|
|
201
|
+
| 지원 포맷 | HWP, HWPX, PDF, XLSX, DOCX | HWPX, PDF, XLSX, DOCX |
|
|
202
|
+
| 설치 | `npm install -g @clazic/kordoc` 필요 | 설치 불필요 |
|
|
203
|
+
| 파일 전달 | 파일 경로 직접 | base64 인코딩 |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### 로컬 MCP (전 포맷 지원, 권장)
|
|
208
|
+
|
|
209
|
+
**1. 전역 설치**
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
npm install -g @clazic/kordoc
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**2. AI 도구별 설정**
|
|
216
|
+
|
|
217
|
+
#### Claude Code
|
|
218
|
+
|
|
219
|
+
`~/.claude.json` 에 추가:
|
|
198
220
|
|
|
199
221
|
```json
|
|
200
222
|
{
|
|
201
223
|
"mcpServers": {
|
|
202
224
|
"kordoc": {
|
|
203
|
-
"
|
|
225
|
+
"type": "stdio",
|
|
226
|
+
"command": "kordoc-mcp",
|
|
227
|
+
"args": [],
|
|
228
|
+
"env": {}
|
|
204
229
|
}
|
|
205
230
|
}
|
|
206
231
|
}
|
|
207
232
|
```
|
|
208
233
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
### 로컬 MCP (HWP 5.x 포함 전 포맷, 파일 경로 직접 접근)
|
|
234
|
+
또는 터미널에서:
|
|
212
235
|
|
|
213
236
|
```bash
|
|
214
|
-
|
|
237
|
+
claude mcp add kordoc -- kordoc-mcp
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### Gemini CLI
|
|
241
|
+
|
|
242
|
+
`~/.gemini/settings.json` 에 추가:
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"mcpServers": {
|
|
247
|
+
"kordoc": {
|
|
248
|
+
"command": "kordoc-mcp"
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
215
252
|
```
|
|
216
253
|
|
|
254
|
+
#### Cursor / Windsurf / VS Code
|
|
255
|
+
|
|
256
|
+
프로젝트 루트 `.mcp.json` 또는 설정 파일에 추가:
|
|
257
|
+
|
|
217
258
|
```json
|
|
218
259
|
{
|
|
219
260
|
"mcpServers": {
|
|
@@ -224,6 +265,37 @@ npm install -g @clazic/kordoc
|
|
|
224
265
|
}
|
|
225
266
|
```
|
|
226
267
|
|
|
268
|
+
#### Windows
|
|
269
|
+
|
|
270
|
+
Windows에서는 `cmd`를 통해 실행해야 합니다:
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"mcpServers": {
|
|
275
|
+
"kordoc": {
|
|
276
|
+
"command": "cmd",
|
|
277
|
+
"args": ["/c", "kordoc-mcp"]
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### 원격 MCP (설치 없이 바로 사용)
|
|
286
|
+
|
|
287
|
+
HWP 5.x를 제외한 모든 포맷 지원. 설치 없이 바로 연결 가능합니다.
|
|
288
|
+
|
|
289
|
+
```json
|
|
290
|
+
{
|
|
291
|
+
"mcpServers": {
|
|
292
|
+
"kordoc": {
|
|
293
|
+
"serverUrl": "https://kordoc-mcp.clazic.workers.dev"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
227
299
|
**7개 도구:**
|
|
228
300
|
|
|
229
301
|
| 도구 | 설명 |
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
precheckZipSize,
|
|
7
7
|
sanitizeHref,
|
|
8
8
|
toArrayBuffer
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NNYD6QUN.js";
|
|
10
10
|
import {
|
|
11
11
|
parsePageRange
|
|
12
12
|
} from "./chunk-MOL7MDBG.js";
|
|
@@ -309,7 +309,7 @@ var HEADING_RATIO_H2 = 1.3;
|
|
|
309
309
|
var HEADING_RATIO_H3 = 1.15;
|
|
310
310
|
|
|
311
311
|
// src/hwpx/parser.ts
|
|
312
|
-
var MAX_DECOMPRESS_SIZE =
|
|
312
|
+
var MAX_DECOMPRESS_SIZE = 500 * 1024 * 1024;
|
|
313
313
|
var MAX_ZIP_ENTRIES = 500;
|
|
314
314
|
function clampSpan(val, max) {
|
|
315
315
|
return Math.max(1, Math.min(val, max));
|
|
@@ -1135,7 +1135,7 @@ function readRecords(data) {
|
|
|
1135
1135
|
}
|
|
1136
1136
|
return records;
|
|
1137
1137
|
}
|
|
1138
|
-
var MAX_DECOMPRESS_SIZE2 =
|
|
1138
|
+
var MAX_DECOMPRESS_SIZE2 = 500 * 1024 * 1024;
|
|
1139
1139
|
function decompressStream(data) {
|
|
1140
1140
|
const opts = { maxOutputLength: MAX_DECOMPRESS_SIZE2 };
|
|
1141
1141
|
if (data.length >= 2 && data[0] === 120) {
|
|
@@ -1969,7 +1969,7 @@ var END_OF_CHAIN = 4294967294;
|
|
|
1969
1969
|
var FREE_SECT = 4294967295;
|
|
1970
1970
|
var MAX_CHAIN_LENGTH = 1e6;
|
|
1971
1971
|
var MAX_DIR_ENTRIES = 1e5;
|
|
1972
|
-
var MAX_STREAM_SIZE =
|
|
1972
|
+
var MAX_STREAM_SIZE = 500 * 1024 * 1024;
|
|
1973
1973
|
function parseLenientCfb(data) {
|
|
1974
1974
|
if (data.length < 512) throw new Error("CFB \uD30C\uC77C\uC774 \uB108\uBB34 \uC9E7\uC2B5\uB2C8\uB2E4 (\uCD5C\uC18C 512\uBC14\uC774\uD2B8)");
|
|
1975
1975
|
if (!data.subarray(0, 8).equals(CFB_MAGIC)) throw new Error("CFB \uB9E4\uC9C1 \uBC14\uC774\uD2B8 \uBD88\uC77C\uCE58");
|
|
@@ -2147,7 +2147,7 @@ import { createRequire } from "module";
|
|
|
2147
2147
|
var require2 = createRequire(import.meta.url);
|
|
2148
2148
|
var CFB = require2("cfb");
|
|
2149
2149
|
var MAX_SECTIONS = 100;
|
|
2150
|
-
var MAX_TOTAL_DECOMPRESS =
|
|
2150
|
+
var MAX_TOTAL_DECOMPRESS = 500 * 1024 * 1024;
|
|
2151
2151
|
function parseHwp5Document(buffer, options) {
|
|
2152
2152
|
let cfb = null;
|
|
2153
2153
|
let lenientCfb = null;
|
|
@@ -3410,7 +3410,7 @@ g.pdfjsWorker = pdfjsWorker;
|
|
|
3410
3410
|
import { getDocument, GlobalWorkerOptions } from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
3411
3411
|
GlobalWorkerOptions.workerSrc = "";
|
|
3412
3412
|
var MAX_PAGES = 5e3;
|
|
3413
|
-
var MAX_TOTAL_TEXT =
|
|
3413
|
+
var MAX_TOTAL_TEXT = 500 * 1024 * 1024;
|
|
3414
3414
|
var PDF_LOAD_TIMEOUT_MS = 3e4;
|
|
3415
3415
|
async function loadPdfWithTimeout(buffer) {
|
|
3416
3416
|
const loadingTask = getDocument({
|
|
@@ -4375,7 +4375,7 @@ import { readFile } from "fs/promises";
|
|
|
4375
4375
|
import JSZip3 from "jszip";
|
|
4376
4376
|
import { DOMParser as DOMParser2 } from "@xmldom/xmldom";
|
|
4377
4377
|
var MAX_SHEETS = 100;
|
|
4378
|
-
var MAX_DECOMPRESS_SIZE3 =
|
|
4378
|
+
var MAX_DECOMPRESS_SIZE3 = 500 * 1024 * 1024;
|
|
4379
4379
|
var MAX_ROWS2 = 1e4;
|
|
4380
4380
|
var MAX_COLS2 = 200;
|
|
4381
4381
|
function cleanNumericValue(raw) {
|
|
@@ -4655,7 +4655,7 @@ async function parseXlsxDocument(buffer, options) {
|
|
|
4655
4655
|
// src/docx/parser.ts
|
|
4656
4656
|
import JSZip4 from "jszip";
|
|
4657
4657
|
import { DOMParser as DOMParser3 } from "@xmldom/xmldom";
|
|
4658
|
-
var MAX_DECOMPRESS_SIZE4 =
|
|
4658
|
+
var MAX_DECOMPRESS_SIZE4 = 500 * 1024 * 1024;
|
|
4659
4659
|
function getChildElements(parent, localName) {
|
|
4660
4660
|
const result = [];
|
|
4661
4661
|
const children = parent.childNodes;
|
|
@@ -5491,4 +5491,4 @@ export {
|
|
|
5491
5491
|
extractFormFields,
|
|
5492
5492
|
parse
|
|
5493
5493
|
};
|
|
5494
|
-
//# sourceMappingURL=chunk-
|
|
5494
|
+
//# sourceMappingURL=chunk-N2UPMKGJ.js.map
|