kordoc 4.21.21 → 4.21.23
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 +6 -4
- package/dist/{-ZYF6HX4M.js → -FLEBKE6V.js} +25 -25
- package/dist/{chunk-QHNVH4TC.js → chunk-2S37CQUJ.js} +21 -21
- package/dist/{chunk-YM3K3LCD.js → chunk-4F6OVO2A.js} +122 -46
- package/dist/chunk-4F6OVO2A.js.map +1 -0
- package/dist/{chunk-ZZIQWSGC.js → chunk-75J4Y5ZQ.js} +2 -2
- package/dist/{chunk-7YAJCXCD.js → chunk-7MTKOSAF.js} +2 -2
- package/dist/{chunk-KBV4WFZ6.js → chunk-C3RR6Z3M.js} +4 -4
- package/dist/{chunk-KBV4WFZ6.js.map → chunk-C3RR6Z3M.js.map} +1 -1
- package/dist/{chunk-TRO4CQHJ.js → chunk-CA742RMF.js} +4 -4
- package/dist/{chunk-CY4QM2KQ.js → chunk-DACTHSPR.js} +2 -2
- package/dist/{chunk-DTZIZ5PP.cjs → chunk-EGYLKSA4.cjs} +13 -13
- package/dist/{chunk-DTZIZ5PP.cjs.map → chunk-EGYLKSA4.cjs.map} +1 -1
- package/dist/{chunk-T7PN5D4D.cjs → chunk-EVPP2BSO.cjs} +6 -6
- package/dist/{chunk-T7PN5D4D.cjs.map → chunk-EVPP2BSO.cjs.map} +1 -1
- package/dist/{chunk-TMUUDMDH.cjs → chunk-GELBKBGQ.cjs} +23 -23
- package/dist/{chunk-TMUUDMDH.cjs.map → chunk-GELBKBGQ.cjs.map} +1 -1
- package/dist/{chunk-FBJVDBMO.js → chunk-GNIOEZDG.js} +2 -2
- package/dist/{chunk-RBRHO7WL.js → chunk-GPIMKPEI.js} +2 -2
- package/dist/{chunk-MCUX2Y2C.cjs → chunk-GUU7OHIH.cjs} +2 -2
- package/dist/{chunk-MCUX2Y2C.cjs.map → chunk-GUU7OHIH.cjs.map} +1 -1
- package/dist/{chunk-5HTFWUJE.js → chunk-J25WF6DP.js} +2 -2
- package/dist/{chunk-HWIW3WK2.js → chunk-JA4ZWCYL.js} +3 -3
- package/dist/{chunk-2ZGP7A5T.js → chunk-JLG7KK4M.js} +2 -2
- package/dist/{chunk-3TCF5HPP.js → chunk-JUA7IACQ.js} +2 -2
- package/dist/{chunk-YQZOPT3A.js → chunk-L4NFUEWJ.js} +5 -5
- package/dist/{chunk-YQZOPT3A.js.map → chunk-L4NFUEWJ.js.map} +1 -1
- package/dist/{chunk-T3DTTK23.js → chunk-QRIGJUOQ.js} +26 -25
- package/dist/chunk-QRIGJUOQ.js.map +1 -0
- package/dist/{chunk-J5PBI3ZC.js → chunk-RDV2RHVH.js} +3 -3
- package/dist/{chunk-YHPJTLCA.js → chunk-RKWJMA2B.js} +2 -2
- package/dist/{chunk-FZMGF6XU.js → chunk-TAU45SJK.js} +2 -2
- package/dist/{chunk-BG6LUCQL.js → chunk-U6D7LUCR.js} +2 -2
- package/dist/{chunk-BC54LBST.js → chunk-UKLNKY7Q.js} +3 -3
- package/dist/{chunk-H2MS4VG3.cjs → chunk-VA43X5N4.cjs} +3 -3
- package/dist/{chunk-H2MS4VG3.cjs.map → chunk-VA43X5N4.cjs.map} +1 -1
- package/dist/{chunk-7FCNOKOR.js → chunk-VKVDMH7X.js} +2 -1
- package/dist/{chunk-KTLHADU4.js → chunk-XEUBMLAS.js} +2 -2
- package/dist/{chunk-57VNFMMS.cjs → chunk-Y7XHHV55.cjs} +28 -27
- package/dist/chunk-Y7XHHV55.cjs.map +1 -0
- package/dist/{chunk-PTF4NCFM.js → chunk-YA6UGARL.js} +2 -2
- package/dist/{chunk-WGMYVRSA.js → chunk-ZE77KLKN.js} +2 -2
- package/dist/chunks-PR2GRNLX.js +10 -0
- package/dist/cli.js +34 -34
- package/dist/{formula-P7M7IH2L.js → formula-2MTBKZKO.js} +4 -4
- package/dist/{formula-A3I5VAP7.cjs → formula-CY2HF27M.cjs} +9 -9
- package/dist/{formula-A3I5VAP7.cjs.map → formula-CY2HF27M.cjs.map} +1 -1
- package/dist/{formula-6XNIXZ5L.js → formula-LGLSIYDI.js} +3 -3
- package/dist/{image-ocr-ITNY454I.js → image-ocr-BKRQVMW6.js} +9 -9
- package/dist/{image-ocr-UJRSQ2T3.cjs → image-ocr-HJM5IJKU.cjs} +15 -15
- package/dist/{image-ocr-UJRSQ2T3.cjs.map → image-ocr-HJM5IJKU.cjs.map} +1 -1
- package/dist/{image-ocr-3C6W3KZO.js → image-ocr-HP65O2CC.js} +6 -6
- package/dist/index.cjs +653 -577
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +83 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +28 -28
- package/dist/{model-bundle-LAWQH75O.js → model-bundle-M7YMF4L4.js} +5 -5
- package/dist/{models-6QTD2CFM.js → models-AMPRHBYB.js} +5 -5
- package/dist/{parse-worker-v2-FEPJG3ER.js → parse-worker-v2-NMYEMVYX.js} +14 -14
- package/dist/{parser-VKWUMUML.cjs → parser-J6M4WG3I.cjs} +136 -136
- package/dist/{parser-VKWUMUML.cjs.map → parser-J6M4WG3I.cjs.map} +1 -1
- package/dist/{parser-56I364YM.js → parser-LX5MOE6Q.js} +8 -8
- package/dist/{parser-KFCY3NIN.js → parser-M45SFXWF.js} +22 -22
- package/dist/pdf-ocr-4YVV5PT4.cjs +19 -0
- package/dist/{pdf-ocr-OKAHNEJA.cjs.map → pdf-ocr-4YVV5PT4.cjs.map} +1 -1
- package/dist/pdf-ocr-D73YYQJ5.js +18 -0
- package/dist/pdf-ocr-SLWZO4D2.js +22 -0
- package/dist/{profile-io-OCITHUQF.js → profile-io-CUMSC3TD.js} +3 -3
- package/dist/{rasterize-SFCG4YOI.js → rasterize-W6NY4ADH.js} +3 -3
- package/dist/{redact-doc-5SMPXIGG.js → redact-doc-7HVCZT3C.js} +25 -25
- package/dist/{render-FGPG5A2N.js → render-FPMJX4CU.js} +9 -9
- package/dist/seal-YTRVR373.js +10 -0
- package/dist/{setup-JQVYZO7I.js → setup-UKIYOUT6.js} +3 -3
- package/dist/visual-DG5EVBZD.js +20 -0
- package/dist/{watch-C77BUSP7.js → watch-YHKMAVJ6.js} +16 -16
- package/package.json +1 -1
- package/dist/chunk-57VNFMMS.cjs.map +0 -1
- package/dist/chunk-T3DTTK23.js.map +0 -1
- package/dist/chunk-YM3K3LCD.js.map +0 -1
- package/dist/chunks-MDMJRCJ7.js +0 -10
- package/dist/pdf-ocr-MME37BL4.js +0 -18
- package/dist/pdf-ocr-OKAHNEJA.cjs +0 -19
- package/dist/pdf-ocr-ZZ6AJL6Z.js +0 -22
- package/dist/seal-GA7NZDTG.js +0 -10
- package/dist/visual-YMG644YW.js +0 -20
- /package/dist/{-ZYF6HX4M.js.map → -FLEBKE6V.js.map} +0 -0
- /package/dist/{chunk-QHNVH4TC.js.map → chunk-2S37CQUJ.js.map} +0 -0
- /package/dist/{chunk-ZZIQWSGC.js.map → chunk-75J4Y5ZQ.js.map} +0 -0
- /package/dist/{chunk-7YAJCXCD.js.map → chunk-7MTKOSAF.js.map} +0 -0
- /package/dist/{chunk-TRO4CQHJ.js.map → chunk-CA742RMF.js.map} +0 -0
- /package/dist/{chunk-CY4QM2KQ.js.map → chunk-DACTHSPR.js.map} +0 -0
- /package/dist/{chunk-FBJVDBMO.js.map → chunk-GNIOEZDG.js.map} +0 -0
- /package/dist/{chunk-RBRHO7WL.js.map → chunk-GPIMKPEI.js.map} +0 -0
- /package/dist/{chunk-5HTFWUJE.js.map → chunk-J25WF6DP.js.map} +0 -0
- /package/dist/{chunk-HWIW3WK2.js.map → chunk-JA4ZWCYL.js.map} +0 -0
- /package/dist/{chunk-2ZGP7A5T.js.map → chunk-JLG7KK4M.js.map} +0 -0
- /package/dist/{chunk-3TCF5HPP.js.map → chunk-JUA7IACQ.js.map} +0 -0
- /package/dist/{chunk-J5PBI3ZC.js.map → chunk-RDV2RHVH.js.map} +0 -0
- /package/dist/{chunk-YHPJTLCA.js.map → chunk-RKWJMA2B.js.map} +0 -0
- /package/dist/{chunk-FZMGF6XU.js.map → chunk-TAU45SJK.js.map} +0 -0
- /package/dist/{chunk-BG6LUCQL.js.map → chunk-U6D7LUCR.js.map} +0 -0
- /package/dist/{chunk-BC54LBST.js.map → chunk-UKLNKY7Q.js.map} +0 -0
- /package/dist/{chunk-7FCNOKOR.js.map → chunk-VKVDMH7X.js.map} +0 -0
- /package/dist/{chunk-KTLHADU4.js.map → chunk-XEUBMLAS.js.map} +0 -0
- /package/dist/{chunk-PTF4NCFM.js.map → chunk-YA6UGARL.js.map} +0 -0
- /package/dist/{chunk-WGMYVRSA.js.map → chunk-ZE77KLKN.js.map} +0 -0
- /package/dist/{chunks-MDMJRCJ7.js.map → chunks-PR2GRNLX.js.map} +0 -0
- /package/dist/{formula-P7M7IH2L.js.map → formula-2MTBKZKO.js.map} +0 -0
- /package/dist/{formula-6XNIXZ5L.js.map → formula-LGLSIYDI.js.map} +0 -0
- /package/dist/{image-ocr-ITNY454I.js.map → image-ocr-BKRQVMW6.js.map} +0 -0
- /package/dist/{image-ocr-3C6W3KZO.js.map → image-ocr-HP65O2CC.js.map} +0 -0
- /package/dist/{model-bundle-LAWQH75O.js.map → model-bundle-M7YMF4L4.js.map} +0 -0
- /package/dist/{models-6QTD2CFM.js.map → models-AMPRHBYB.js.map} +0 -0
- /package/dist/{parse-worker-v2-FEPJG3ER.js.map → parse-worker-v2-NMYEMVYX.js.map} +0 -0
- /package/dist/{parser-56I364YM.js.map → parser-LX5MOE6Q.js.map} +0 -0
- /package/dist/{parser-KFCY3NIN.js.map → parser-M45SFXWF.js.map} +0 -0
- /package/dist/{pdf-ocr-MME37BL4.js.map → pdf-ocr-D73YYQJ5.js.map} +0 -0
- /package/dist/{pdf-ocr-ZZ6AJL6Z.js.map → pdf-ocr-SLWZO4D2.js.map} +0 -0
- /package/dist/{profile-io-OCITHUQF.js.map → profile-io-CUMSC3TD.js.map} +0 -0
- /package/dist/{rasterize-SFCG4YOI.js.map → rasterize-W6NY4ADH.js.map} +0 -0
- /package/dist/{redact-doc-5SMPXIGG.js.map → redact-doc-7HVCZT3C.js.map} +0 -0
- /package/dist/{render-FGPG5A2N.js.map → render-FPMJX4CU.js.map} +0 -0
- /package/dist/{seal-GA7NZDTG.js.map → seal-YTRVR373.js.map} +0 -0
- /package/dist/{setup-JQVYZO7I.js.map → setup-UKIYOUT6.js.map} +0 -0
- /package/dist/{visual-YMG644YW.js.map → visual-DG5EVBZD.js.map} +0 -0
- /package/dist/{watch-C77BUSP7.js.map → watch-YHKMAVJ6.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
blocksToPages,
|
|
3
|
+
bmpToPng,
|
|
3
4
|
inlineImagesIntoMarkdown
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QRIGJUOQ.js";
|
|
5
6
|
import {
|
|
6
7
|
parsePageRange
|
|
7
8
|
} from "./chunk-V4BH5SRQ.js";
|
|
@@ -32,7 +33,7 @@ import {
|
|
|
32
33
|
tidyScriptTags,
|
|
33
34
|
unframeLayoutTables,
|
|
34
35
|
wrapScript
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-XEUBMLAS.js";
|
|
36
37
|
import {
|
|
37
38
|
KordocError,
|
|
38
39
|
OPTIONAL_DEP_INSTALL_HINT,
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
toArrayBuffer,
|
|
51
52
|
unescapeHtml,
|
|
52
53
|
unzipLimitBytes
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-75J4Y5ZQ.js";
|
|
54
55
|
|
|
55
56
|
// src/plain-markdown.ts
|
|
56
57
|
function toPlainMarkdown(md2) {
|
|
@@ -24450,6 +24451,66 @@ function collectAllTables(scan) {
|
|
|
24450
24451
|
return out;
|
|
24451
24452
|
}
|
|
24452
24453
|
|
|
24454
|
+
// src/ocr/embedded-image-ocr.ts
|
|
24455
|
+
var MIN_SIDE = 24;
|
|
24456
|
+
async function ocrEmbeddedImages(blocks, options, warnings) {
|
|
24457
|
+
const ocr = options?.ocr;
|
|
24458
|
+
if (ocr !== true && ocr !== "force" && typeof ocr !== "function") return false;
|
|
24459
|
+
const { parseImageDocument } = await import("./image-ocr-HP65O2CC.js");
|
|
24460
|
+
let inserted = false, unreadable = 0;
|
|
24461
|
+
let failed = null;
|
|
24462
|
+
const walk = async (list, depth) => {
|
|
24463
|
+
if (depth > 64) return;
|
|
24464
|
+
for (let i = 0; i < list.length; i++) {
|
|
24465
|
+
const b = list[i];
|
|
24466
|
+
if (b.children) await walk(b.children, depth + 1);
|
|
24467
|
+
if (b.table) {
|
|
24468
|
+
for (const row of b.table.cells) for (const cell2 of row) if (cell2.blocks) await walk(cell2.blocks, depth + 1);
|
|
24469
|
+
}
|
|
24470
|
+
if (b.type !== "image" || !b.imageData || failed) continue;
|
|
24471
|
+
const bytes = ocrBytes(b.imageData);
|
|
24472
|
+
if (!bytes) {
|
|
24473
|
+
unreadable++;
|
|
24474
|
+
continue;
|
|
24475
|
+
}
|
|
24476
|
+
if (await tooSmall(bytes)) continue;
|
|
24477
|
+
let found;
|
|
24478
|
+
try {
|
|
24479
|
+
const buf = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
24480
|
+
found = (await parseImageDocument(buf, options)).blocks;
|
|
24481
|
+
} catch (err) {
|
|
24482
|
+
failed = err instanceof Error ? err.message : String(err);
|
|
24483
|
+
continue;
|
|
24484
|
+
}
|
|
24485
|
+
if (!found.length) continue;
|
|
24486
|
+
const placed = found.map((f) => ({ ...f, pageNumber: b.pageNumber, bbox: void 0 }));
|
|
24487
|
+
list.splice(i + 1, 0, ...placed);
|
|
24488
|
+
i += placed.length;
|
|
24489
|
+
inserted = true;
|
|
24490
|
+
}
|
|
24491
|
+
};
|
|
24492
|
+
await walk(blocks, 0);
|
|
24493
|
+
if (unreadable) warnings.push({ code: "SKIPPED_IMAGE", message: `${unreadable}\uAC1C \uADF8\uB9BC\uC740 OCR \uB85C \uC77D\uC744 \uC218 \uC5C6\uB294 \uD615\uC2DD(WMF\xB7EMF \uB4F1)\uC774\uB77C \uAC74\uB108\uB700` });
|
|
24494
|
+
if (failed) warnings.push({ code: "OCR_FAILED", message: `\uC0BD\uC785 \uADF8\uB9BC OCR \uC2E4\uD328 \u2014 \uADF8\uB9BC \uC18D \uAE00 \uC5C6\uC774 \uACC4\uC18D: ${failed}` });
|
|
24495
|
+
return inserted;
|
|
24496
|
+
}
|
|
24497
|
+
function ocrBytes(img) {
|
|
24498
|
+
const mime = img.mimeType.toLowerCase();
|
|
24499
|
+
if (mime.includes("wmf") || mime.includes("emf")) return null;
|
|
24500
|
+
if (mime.includes("bmp")) return bmpToPng(img.data);
|
|
24501
|
+
return img.data;
|
|
24502
|
+
}
|
|
24503
|
+
async function tooSmall(bytes) {
|
|
24504
|
+
try {
|
|
24505
|
+
const mod = await import("sharp");
|
|
24506
|
+
const sharp = typeof mod === "function" ? mod : mod.default;
|
|
24507
|
+
const { width, height } = await sharp(Buffer.from(bytes)).metadata();
|
|
24508
|
+
return !!width && !!height && (width < MIN_SIDE || height < MIN_SIDE);
|
|
24509
|
+
} catch {
|
|
24510
|
+
return false;
|
|
24511
|
+
}
|
|
24512
|
+
}
|
|
24513
|
+
|
|
24453
24514
|
// src/table/classifier.ts
|
|
24454
24515
|
var DIAGRAM_KEYWORDS = /조직도|비상\s*연락망|연락망|체계도|업무\s*체계도|기구표|배치도|흐름도|추진\s*체계/u;
|
|
24455
24516
|
var KEYWORD_GATE = 0.3;
|
|
@@ -42683,12 +42744,24 @@ async function dispatch(format2, buffer, opts) {
|
|
|
42683
42744
|
return { success: false, fileType: "unknown", error: "\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD30C\uC77C \uD615\uC2DD\uC785\uB2C8\uB2E4.", code: "UNSUPPORTED_FORMAT" };
|
|
42684
42745
|
}
|
|
42685
42746
|
}
|
|
42747
|
+
async function withEmbeddedImageOcr(blocks, markdown, warnings, images, options) {
|
|
42748
|
+
const list = [...warnings ?? []];
|
|
42749
|
+
if (!await ocrEmbeddedImages(blocks, options, list)) return { markdown, warnings: list.length ? list : void 0 };
|
|
42750
|
+
let md2 = blocksToMarkdown(blocks, { tableFormat: options?.tableFormat });
|
|
42751
|
+
if (options?.inlineImages && options.images !== false && images?.length) {
|
|
42752
|
+
try {
|
|
42753
|
+
md2 = inlineImagesIntoMarkdown(md2, images, { compress: true });
|
|
42754
|
+
} catch {
|
|
42755
|
+
}
|
|
42756
|
+
}
|
|
42757
|
+
return { markdown: md2, warnings: list.length ? list : void 0 };
|
|
42758
|
+
}
|
|
42686
42759
|
function scriptsOff(r, off) {
|
|
42687
42760
|
return off ? stripScriptTags(r) : r;
|
|
42688
42761
|
}
|
|
42689
42762
|
async function parseImage(buffer, options) {
|
|
42690
42763
|
try {
|
|
42691
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
42764
|
+
const { parseImageDocument } = await import("./image-ocr-HP65O2CC.js");
|
|
42692
42765
|
const { blocks, warnings } = await parseImageDocument(buffer, options);
|
|
42693
42766
|
stripScriptTags({ blocks });
|
|
42694
42767
|
return {
|
|
@@ -42713,7 +42786,9 @@ async function parseHwp3(buffer, options) {
|
|
|
42713
42786
|
}
|
|
42714
42787
|
async function parseHwpx(buffer, options) {
|
|
42715
42788
|
try {
|
|
42716
|
-
const
|
|
42789
|
+
const doc = await parseHwpxDocument(buffer, options);
|
|
42790
|
+
const { blocks, metadata, outline, images } = doc;
|
|
42791
|
+
const { markdown, warnings } = await withEmbeddedImageOcr(blocks, doc.markdown, doc.warnings, void 0, options);
|
|
42717
42792
|
return scriptsOff({ success: true, fileType: "hwpx", markdown, blocks, metadata, outline, warnings, images: images?.length ? images : void 0, pageCount: metadata?.pageCount }, options?.scriptTags === false);
|
|
42718
42793
|
} catch (err) {
|
|
42719
42794
|
return { success: false, fileType: "hwpx", error: sanitizeError(err), code: classifyError(err) };
|
|
@@ -42740,7 +42815,8 @@ async function parseHwp(buffer, options) {
|
|
|
42740
42815
|
} catch {
|
|
42741
42816
|
}
|
|
42742
42817
|
}
|
|
42743
|
-
|
|
42818
|
+
const ocred = await withEmbeddedImageOcr(blocks, markdown, warnings, images, options);
|
|
42819
|
+
return scriptsOff({ success: true, fileType: "hwp", markdown: ocred.markdown, blocks, metadata, outline, warnings: ocred.warnings, images: images?.length ? images : void 0, pageCount: metadata?.pageCount }, options?.scriptTags === false);
|
|
42744
42820
|
} catch (err) {
|
|
42745
42821
|
return { success: false, fileType: "hwp", error: sanitizeError(err), code: classifyError(err) };
|
|
42746
42822
|
}
|
|
@@ -42748,7 +42824,7 @@ async function parseHwp(buffer, options) {
|
|
|
42748
42824
|
async function parsePdf(buffer, options) {
|
|
42749
42825
|
let parsePdfDocument;
|
|
42750
42826
|
try {
|
|
42751
|
-
const mod = await import("./parser-
|
|
42827
|
+
const mod = await import("./parser-LX5MOE6Q.js");
|
|
42752
42828
|
parsePdfDocument = mod.parsePdfDocument;
|
|
42753
42829
|
} catch {
|
|
42754
42830
|
return {
|