kordoc 4.0.6 → 4.0.7
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/LICENSE +21 -21
- package/dist/{-NDU7YGSS.js → -6HWEFXVV.js} +9 -9
- package/dist/{chunk-UVSOSFER.js → chunk-2SN3CKME.js} +2 -2
- package/dist/{chunk-MOL7MDBG.js → chunk-3TBUDJDE.js} +1 -1
- package/dist/chunk-3TBUDJDE.js.map +1 -0
- package/dist/{chunk-HOGJ5ALY.js → chunk-5OKHAJ62.js} +2 -2
- package/dist/{chunk-GE43BE46.js → chunk-AIQ3ISQU.js} +1 -1
- package/dist/chunk-AIQ3ISQU.js.map +1 -0
- package/dist/{chunk-5SOZXPQY.js → chunk-BKWHX3RC.js} +3 -3
- package/dist/{chunk-5CJGKKMZ.js → chunk-CFQLK3LM.js} +1 -1
- package/dist/chunk-CFQLK3LM.js.map +1 -0
- package/dist/{chunk-L3I4TIRP.js → chunk-CNM75ZSX.js} +2 -2
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-63ASYC4N.js → chunk-NGSHDBQR.js} +3 -3
- package/dist/{chunk-KA4FEBS2.js → chunk-ONXVBURQ.js} +2 -2
- package/dist/{chunk-4C7SBZNW.js → chunk-Q7EN4EUJ.js} +2 -2
- package/dist/{chunk-HC2SEH6I.js → chunk-TJJTLM76.js} +166 -97
- package/dist/chunk-TJJTLM76.js.map +1 -0
- package/dist/{chunk-DQJTNXVS.cjs → chunk-U25XGCNH.cjs} +2 -2
- package/dist/chunk-U25XGCNH.cjs.map +1 -0
- package/dist/{chunk-DCZVOIEO.cjs → chunk-X34YWRL5.cjs} +1 -1
- package/dist/chunk-X34YWRL5.cjs.map +1 -0
- package/dist/cli.js +17 -17
- package/dist/{detect-PJZMUL2Z.js → detect-NTR2FUEG.js} +2 -2
- package/dist/{formula-JCNF43NE.js → formula-KOQV353G.js} +1 -1
- package/dist/formula-KOQV353G.js.map +1 -0
- package/dist/{formula-RXVSQPXI.js → formula-MEDGYQXS.js} +1 -1
- package/dist/formula-MEDGYQXS.js.map +1 -0
- package/dist/{formula-5NKVS2LR.cjs → formula-ZYUDQHD3.cjs} +1 -1
- package/dist/formula-ZYUDQHD3.cjs.map +1 -0
- package/dist/index.cjs +298 -229
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +160 -91
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +13 -13
- package/dist/page-range-CIRRJPXJ.js +7 -0
- package/dist/page-range-OF5I4PQY.js +8 -0
- package/dist/page-range-TPIRSA3J.cjs +8 -0
- package/dist/page-range-TPIRSA3J.cjs.map +1 -0
- package/dist/{parser-C636QIOB.js → parser-5EHWYJMC.js} +24 -6
- package/dist/parser-5EHWYJMC.js.map +1 -0
- package/dist/{parser-VEY4B5CJ.cjs → parser-E6U5TNAU.cjs} +36 -18
- package/dist/parser-E6U5TNAU.cjs.map +1 -0
- package/dist/{parser-DMKHIV4E.js → parser-UGB3NIVH.js} +23 -5
- package/dist/parser-UGB3NIVH.js.map +1 -0
- package/dist/{profile-io-JYGCC6XQ.js → profile-io-CAKRPQRD.js} +3 -3
- package/dist/provider-5K7O3Z2O.cjs.map +1 -1
- package/dist/render-P6663O4I.js +10 -0
- package/dist/seal-7PPTXKKV.js +10 -0
- package/dist/{setup-57FB3LSP.js → setup-QSJ2INNS.js} +1 -1
- package/dist/setup-QSJ2INNS.js.map +1 -0
- package/dist/{watch-ZQUFJBFR.js → watch-RMX427YR.js} +9 -9
- package/package.json +1 -1
- package/dist/chunk-5CJGKKMZ.js.map +0 -1
- package/dist/chunk-DCZVOIEO.cjs.map +0 -1
- package/dist/chunk-DQJTNXVS.cjs.map +0 -1
- package/dist/chunk-GE43BE46.js.map +0 -1
- package/dist/chunk-HC2SEH6I.js.map +0 -1
- package/dist/chunk-MOL7MDBG.js.map +0 -1
- package/dist/formula-5NKVS2LR.cjs.map +0 -1
- package/dist/formula-JCNF43NE.js.map +0 -1
- package/dist/formula-RXVSQPXI.js.map +0 -1
- package/dist/page-range-737B4EZW.js +0 -8
- package/dist/page-range-LNMXJU6W.js +0 -7
- package/dist/page-range-P7SDW6LR.cjs +0 -8
- package/dist/page-range-P7SDW6LR.cjs.map +0 -1
- package/dist/parser-C636QIOB.js.map +0 -1
- package/dist/parser-DMKHIV4E.js.map +0 -1
- package/dist/parser-VEY4B5CJ.cjs.map +0 -1
- package/dist/render-ISOEOMTM.js +0 -10
- package/dist/seal-676ZIAZZ.js +0 -10
- package/dist/setup-57FB3LSP.js.map +0 -1
- /package/dist/{-NDU7YGSS.js.map → -6HWEFXVV.js.map} +0 -0
- /package/dist/{chunk-UVSOSFER.js.map → chunk-2SN3CKME.js.map} +0 -0
- /package/dist/{chunk-HOGJ5ALY.js.map → chunk-5OKHAJ62.js.map} +0 -0
- /package/dist/{chunk-5SOZXPQY.js.map → chunk-BKWHX3RC.js.map} +0 -0
- /package/dist/{chunk-L3I4TIRP.js.map → chunk-CNM75ZSX.js.map} +0 -0
- /package/dist/{chunk-63ASYC4N.js.map → chunk-NGSHDBQR.js.map} +0 -0
- /package/dist/{chunk-KA4FEBS2.js.map → chunk-ONXVBURQ.js.map} +0 -0
- /package/dist/{chunk-4C7SBZNW.js.map → chunk-Q7EN4EUJ.js.map} +0 -0
- /package/dist/{detect-PJZMUL2Z.js.map → detect-NTR2FUEG.js.map} +0 -0
- /package/dist/{page-range-737B4EZW.js.map → page-range-CIRRJPXJ.js.map} +0 -0
- /package/dist/{page-range-LNMXJU6W.js.map → page-range-OF5I4PQY.js.map} +0 -0
- /package/dist/{profile-io-JYGCC6XQ.js.map → profile-io-CAKRPQRD.js.map} +0 -0
- /package/dist/{render-ISOEOMTM.js.map → render-P6663O4I.js.map} +0 -0
- /package/dist/{seal-676ZIAZZ.js.map → seal-7PPTXKKV.js.map} +0 -0
- /package/dist/{watch-ZQUFJBFR.js.map → watch-RMX427YR.js.map} +0 -0
package/dist/mcp.js
CHANGED
|
@@ -31,24 +31,24 @@ import {
|
|
|
31
31
|
patchHwp,
|
|
32
32
|
patchHwpx,
|
|
33
33
|
unknownFontWarnings
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TJJTLM76.js";
|
|
35
35
|
import {
|
|
36
36
|
blocksToMarkdown
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-2SN3CKME.js";
|
|
38
38
|
import {
|
|
39
39
|
detectFormat,
|
|
40
40
|
detectZipFormat
|
|
41
|
-
} from "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-CFQLK3LM.js";
|
|
42
|
+
import "./chunk-3TBUDJDE.js";
|
|
43
|
+
import "./chunk-NGSHDBQR.js";
|
|
44
|
+
import "./chunk-BKWHX3RC.js";
|
|
45
|
+
import "./chunk-Q7EN4EUJ.js";
|
|
46
46
|
import {
|
|
47
47
|
KordocError,
|
|
48
48
|
VERSION,
|
|
49
49
|
sanitizeError,
|
|
50
50
|
toArrayBuffer
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-CNM75ZSX.js";
|
|
52
52
|
|
|
53
53
|
// src/mcp.ts
|
|
54
54
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
@@ -211,7 +211,7 @@ server.tool(
|
|
|
211
211
|
let metadata;
|
|
212
212
|
let effectiveFormat = format;
|
|
213
213
|
if (format === "hwpx") {
|
|
214
|
-
const { detectZipFormat: detectZipFormat2 } = await import("./detect-
|
|
214
|
+
const { detectZipFormat: detectZipFormat2 } = await import("./detect-NTR2FUEG.js");
|
|
215
215
|
const zipFormat = await detectZipFormat2(buffer);
|
|
216
216
|
if (zipFormat === "xlsx" || zipFormat === "docx") effectiveFormat = zipFormat;
|
|
217
217
|
}
|
|
@@ -224,7 +224,7 @@ server.tool(
|
|
|
224
224
|
break;
|
|
225
225
|
case "pdf":
|
|
226
226
|
try {
|
|
227
|
-
const { extractPdfMetadataOnly } = await import("./parser-
|
|
227
|
+
const { extractPdfMetadataOnly } = await import("./parser-5EHWYJMC.js");
|
|
228
228
|
metadata = await extractPdfMetadataOnly(buffer);
|
|
229
229
|
} catch {
|
|
230
230
|
metadata = void 0;
|
|
@@ -576,7 +576,7 @@ server.tool(
|
|
|
576
576
|
}
|
|
577
577
|
const image = new Uint8Array(readFileSync(imgResolved));
|
|
578
578
|
const ext = extname(image_path).slice(1).toLowerCase() || "png";
|
|
579
|
-
const { placeSealHwpx } = await import("./seal-
|
|
579
|
+
const { placeSealHwpx } = await import("./seal-7PPTXKKV.js");
|
|
580
580
|
const result = await placeSealHwpx(buffer, [{
|
|
581
581
|
anchor,
|
|
582
582
|
occurrence,
|
|
@@ -671,7 +671,7 @@ server.tool(
|
|
|
671
671
|
async ({ hwpx_path, output_path }) => {
|
|
672
672
|
try {
|
|
673
673
|
const { buffer } = readValidatedFile(hwpx_path);
|
|
674
|
-
const { hwpxToProfile } = await import("./-
|
|
674
|
+
const { hwpxToProfile } = await import("./-6HWEFXVV.js");
|
|
675
675
|
const profile = await hwpxToProfile(buffer);
|
|
676
676
|
const out = resolve(output_path);
|
|
677
677
|
mkdirSync(dirname(out), { recursive: true });
|
|
@@ -755,7 +755,7 @@ server.tool(
|
|
|
755
755
|
}
|
|
756
756
|
let profile;
|
|
757
757
|
if (profile_path) {
|
|
758
|
-
const { parseFormatProfileJson } = await import("./profile-io-
|
|
758
|
+
const { parseFormatProfileJson } = await import("./profile-io-CAKRPQRD.js");
|
|
759
759
|
profile = parseFormatProfileJson(readFileSync(resolve(profile_path), "utf-8"));
|
|
760
760
|
}
|
|
761
761
|
const buf = await markdownToHwpx(markdown, gongmun || profile ? { ...gongmun ? { gongmun } : {}, ...profile ? { profile } : {} } : void 0);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkX34YWRL5cjs = require('./chunk-X34YWRL5.cjs');
|
|
4
|
+
require('./chunk-GS7T56RP.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.parsePageRange = _chunkX34YWRL5cjs.parsePageRange;
|
|
8
|
+
//# sourceMappingURL=page-range-TPIRSA3J.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\AI_Project\\kordoc\\dist\\page-range-TPIRSA3J.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,0DAAC","file":"D:\\AI_Project\\kordoc\\dist\\page-range-TPIRSA3J.cjs"}
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
HEADING_RATIO_H2,
|
|
5
5
|
HEADING_RATIO_H3,
|
|
6
6
|
blocksToMarkdown
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2SN3CKME.js";
|
|
8
8
|
import {
|
|
9
9
|
parsePageRange
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3TBUDJDE.js";
|
|
11
11
|
import {
|
|
12
12
|
KordocError,
|
|
13
13
|
safeMax,
|
|
14
14
|
safeMin
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-CNM75ZSX.js";
|
|
16
16
|
|
|
17
17
|
// src/pdf/line-extract.ts
|
|
18
18
|
import { OPS } from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
@@ -1224,9 +1224,15 @@ function normalizeUndersegmentedTable(originalCells, colXs, items) {
|
|
|
1224
1224
|
}
|
|
1225
1225
|
|
|
1226
1226
|
// src/pdf/quality.ts
|
|
1227
|
+
var RARE_JONG = /* @__PURE__ */ new Set([3, 5, 6, 9, 10, 11, 12, 13, 14, 15, 18, 24, 25, 26]);
|
|
1228
|
+
var MOJIBAKE_MIN_HANGUL = 30;
|
|
1229
|
+
var MOJIBAKE_MAX_NOBATCHIM = 0.15;
|
|
1230
|
+
var MOJIBAKE_MIN_RAREBATCHIM = 0.25;
|
|
1227
1231
|
function computePageQuality(page, text) {
|
|
1228
1232
|
let total = 0;
|
|
1229
1233
|
let hangul = 0;
|
|
1234
|
+
let hangulNoBatchim = 0;
|
|
1235
|
+
let hangulRareBatchim = 0;
|
|
1230
1236
|
let control = 0;
|
|
1231
1237
|
let replacement = 0;
|
|
1232
1238
|
let pua = 0;
|
|
@@ -1244,6 +1250,9 @@ function computePageQuality(page, text) {
|
|
|
1244
1250
|
}
|
|
1245
1251
|
if (code >= 44032 && code <= 55203) {
|
|
1246
1252
|
hangul++;
|
|
1253
|
+
const jong = (code - 44032) % 28;
|
|
1254
|
+
if (jong === 0) hangulNoBatchim++;
|
|
1255
|
+
else if (RARE_JONG.has(jong)) hangulRareBatchim++;
|
|
1247
1256
|
continue;
|
|
1248
1257
|
}
|
|
1249
1258
|
if (code >= 57344 && code <= 63743 || code >= 56192 && code <= 56319) {
|
|
@@ -1255,6 +1264,9 @@ function computePageQuality(page, text) {
|
|
|
1255
1264
|
const puaRatio = pua / denom;
|
|
1256
1265
|
const controlCharRatio = control / denom;
|
|
1257
1266
|
const replacementCharRatio = replacement / denom;
|
|
1267
|
+
const hangulNoBatchimRatio = hangul > 0 ? hangulNoBatchim / hangul : 0;
|
|
1268
|
+
const hangulRareBatchimRatio = hangul > 0 ? hangulRareBatchim / hangul : 0;
|
|
1269
|
+
const garbledHangul = hangul >= MOJIBAKE_MIN_HANGUL && hangulNoBatchimRatio < MOJIBAKE_MAX_NOBATCHIM && hangulRareBatchimRatio >= MOJIBAKE_MIN_RAREBATCHIM;
|
|
1258
1270
|
let needsOcr = false;
|
|
1259
1271
|
let ocrReason;
|
|
1260
1272
|
if (total < LOW_TEXT_THRESHOLD) {
|
|
@@ -1269,6 +1281,9 @@ function computePageQuality(page, text) {
|
|
|
1269
1281
|
} else if (replacementCharRatio >= HIGH_REPLACEMENT_THRESHOLD) {
|
|
1270
1282
|
needsOcr = true;
|
|
1271
1283
|
ocrReason = "high_replacement";
|
|
1284
|
+
} else if (garbledHangul) {
|
|
1285
|
+
needsOcr = true;
|
|
1286
|
+
ocrReason = "garbled_hangul";
|
|
1272
1287
|
}
|
|
1273
1288
|
return {
|
|
1274
1289
|
page,
|
|
@@ -1277,6 +1292,8 @@ function computePageQuality(page, text) {
|
|
|
1277
1292
|
controlCharRatio,
|
|
1278
1293
|
replacementCharRatio,
|
|
1279
1294
|
puaRatio,
|
|
1295
|
+
hangulNoBatchimRatio,
|
|
1296
|
+
hangulRareBatchimRatio,
|
|
1280
1297
|
needsOcr,
|
|
1281
1298
|
ocrReason
|
|
1282
1299
|
};
|
|
@@ -3373,7 +3390,7 @@ function mergeKoreanLines(text) {
|
|
|
3373
3390
|
|
|
3374
3391
|
// src/pdf/formula-ocr.ts
|
|
3375
3392
|
async function applyFormulaOcr(buffer, blocks, pageFilter, effectivePageCount, warnings, _onProgress) {
|
|
3376
|
-
const formulaMod = await import("./formula-
|
|
3393
|
+
const formulaMod = await import("./formula-KOQV353G.js");
|
|
3377
3394
|
const { FormulaPipeline, ensureFormulaModels } = formulaMod;
|
|
3378
3395
|
await ensureFormulaModels((p) => {
|
|
3379
3396
|
if (p.phase === "download" && p.total) {
|
|
@@ -3646,7 +3663,8 @@ async function parsePdfDocument(buffer, options) {
|
|
|
3646
3663
|
low_text: "\uD14D\uC2A4\uD2B8\uAC00 \uAC70\uC758 \uC5C6\uB294 \uD398\uC774\uC9C0 (\uC2A4\uCE94/\uC774\uBBF8\uC9C0 \uCD94\uC815)",
|
|
3647
3664
|
high_pua: "\uAE00\uAF34 \uB9E4\uD551 \uC2E4\uD328 (PUA \uBE44\uC728 \uB192\uC74C) \u2014 \uCD94\uCD9C \uD14D\uC2A4\uD2B8 \uC2E0\uB8B0 \uBD88\uAC00",
|
|
3648
3665
|
high_control: "\uC81C\uC5B4\uBB38\uC790 \uBE44\uC728 \uB192\uC74C \u2014 \uCD94\uCD9C \uD14D\uC2A4\uD2B8 \uC2E0\uB8B0 \uBD88\uAC00",
|
|
3649
|
-
high_replacement: "\uB300\uCCB4\uBB38\uC790(U+FFFD) \uBE44\uC728 \uB192\uC74C \u2014 \uCD94\uCD9C \uD14D\uC2A4\uD2B8 \uC2E0\uB8B0 \uBD88\uAC00"
|
|
3666
|
+
high_replacement: "\uB300\uCCB4\uBB38\uC790(U+FFFD) \uBE44\uC728 \uB192\uC74C \u2014 \uCD94\uCD9C \uD14D\uC2A4\uD2B8 \uC2E0\uB8B0 \uBD88\uAC00",
|
|
3667
|
+
garbled_hangul: "\uAE00\uAF34 \uB9E4\uD551 \uC2E4\uD328 (\uD55C\uAE00 \uC790\uC18C \uBD84\uD3EC \uC774\uC0C1) \u2014 \uCD94\uCD9C \uD14D\uC2A4\uD2B8\uAC00 \uAE68\uC84C\uC744 \uC218 \uC788\uC74C"
|
|
3650
3668
|
};
|
|
3651
3669
|
for (const pq of pageQuality) {
|
|
3652
3670
|
if (!pq.needsOcr || !pq.ocrReason) continue;
|
|
@@ -3744,4 +3762,4 @@ export {
|
|
|
3744
3762
|
parsePdfDocument,
|
|
3745
3763
|
removeHeaderFooterBlocks
|
|
3746
3764
|
};
|
|
3747
|
-
//# sourceMappingURL=parser-
|
|
3765
|
+
//# sourceMappingURL=parser-5EHWYJMC.js.map
|