kordoc 4.9.2 → 4.10.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.
- package/README.md +44 -0
- package/dist/{-Z4LCTGQR.js → -AN4MKOOO.js} +9 -9
- package/dist/{chunk-BAJVZXC7.cjs → chunk-2FNQN23O.cjs} +3 -3
- package/dist/chunk-2FNQN23O.cjs.map +1 -0
- package/dist/{chunk-WLZX2HTC.js → chunk-34IBS3JN.js} +3 -3
- package/dist/{chunk-6WYMV73J.js → chunk-4EJLRZ7A.js} +50 -16
- package/dist/chunk-4EJLRZ7A.js.map +1 -0
- package/dist/{chunk-KATZTHWA.cjs → chunk-4SIKWOLQ.cjs} +2 -2
- package/dist/chunk-4SIKWOLQ.cjs.map +1 -0
- package/dist/{chunk-OOT54JF2.js → chunk-7UUQXASL.js} +2 -2
- package/dist/{chunk-OOT54JF2.js.map → chunk-7UUQXASL.js.map} +1 -1
- package/dist/{chunk-LJP3PK2S.js → chunk-AOTA4XTU.js} +2 -2
- package/dist/{chunk-LUY46O7O.js → chunk-B4MQXOU5.js} +2 -2
- package/dist/chunk-DCZVOIEO.cjs.map +1 -1
- package/dist/{chunk-JHPEDWJX.js → chunk-EWUFLCRP.js} +3 -3
- package/dist/{chunk-OYQL3D4B.js → chunk-F3OPGGQ2.js} +2 -2
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-PIUPP3FL.js → chunk-HO7N6T36.js} +3 -3
- package/dist/{chunk-PKCDYIIJ.js → chunk-JAY6BXZ6.js} +2 -2
- package/dist/{chunk-TK7WUS47.js → chunk-KEF4UQYI.js} +2 -2
- package/dist/{chunk-XINP35F4.js → chunk-N3DLQ2YH.js} +1 -1
- package/dist/{chunk-XINP35F4.js.map → chunk-N3DLQ2YH.js.map} +1 -1
- package/dist/{chunk-GL6BCNJV.js → chunk-NE7GR65O.js} +3 -3
- package/dist/{chunk-5ZPXRDS2.js → chunk-NMXDXHHW.js} +2 -2
- package/dist/{chunk-5ZPXRDS2.js.map → chunk-NMXDXHHW.js.map} +1 -1
- package/dist/{chunk-BN33O25L.js → chunk-ONQHGZTS.js} +1 -1
- package/dist/{chunk-BN33O25L.js.map → chunk-ONQHGZTS.js.map} +1 -1
- package/dist/{chunk-NIQ4JCQF.cjs → chunk-OQNZCCJI.cjs} +6 -6
- package/dist/chunk-OQNZCCJI.cjs.map +1 -0
- package/dist/{chunk-Y7QB4IB6.js → chunk-PDXRLQD6.js} +2 -2
- package/dist/{chunk-NOEYLJGJ.js → chunk-QYXQJPB7.js} +3 -3
- package/dist/{chunk-NIBRVLGS.js → chunk-SV2YYPBO.js} +3 -3
- package/dist/{chunk-L5CDTOC3.cjs → chunk-T7GRHAIW.cjs} +1 -1
- package/dist/chunk-T7GRHAIW.cjs.map +1 -0
- package/dist/{chunk-V3Q6I2AQ.cjs → chunk-V7F5765M.cjs} +4 -4
- package/dist/chunk-V7F5765M.cjs.map +1 -0
- package/dist/{chunk-VYGNPB2X.js → chunk-VR3ECURZ.js} +2 -2
- package/dist/{chunk-LKZQ4564.js → chunk-WLUDCIOK.js} +2 -2
- package/dist/{chunk-LREEDIEF.js → chunk-YVPYCQOG.js} +2 -2
- package/dist/{chunk-SHBVD23C.cjs → chunk-ZOLKTMBS.cjs} +11 -11
- package/dist/chunk-ZOLKTMBS.cjs.map +1 -0
- package/dist/chunks-JUBR2TW7.js +10 -0
- package/dist/cli.js +37 -33
- package/dist/cli.js.map +1 -1
- package/dist/{formula-JVBJ6QRG.cjs → formula-4QA6ZSFP.cjs} +9 -9
- package/dist/formula-4QA6ZSFP.cjs.map +1 -0
- package/dist/{formula-LFWZG7T7.js → formula-LFDXPFQH.js} +4 -4
- package/dist/{formula-77TJPACH.js → formula-UYS7Z7IH.js} +3 -3
- package/dist/{image-ocr-YZ56O63S.js → image-ocr-3YP5I2H4.js} +6 -6
- package/dist/{image-ocr-6SY623KL.js → image-ocr-NOU6O7ZY.js} +8 -8
- package/dist/{image-ocr-YTGAUHEP.cjs → image-ocr-POPCJGL5.cjs} +12 -12
- package/dist/image-ocr-POPCJGL5.cjs.map +1 -0
- package/dist/index.cjs +222 -189
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +45 -12
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +16 -16
- package/dist/{model-bundle-W7B3BIYS.js → model-bundle-AUKJF6GA.js} +5 -5
- package/dist/{models-FUKPEVPE.js → models-QKSQSUWJ.js} +5 -5
- package/dist/page-range-P7SDW6LR.cjs.map +1 -1
- package/dist/{parser-6UL2HLDH.js → parser-6HKVNDZM.js} +7 -7
- package/dist/{parser-WIRWVN5E.cjs → parser-VAIMONF2.cjs} +27 -27
- package/dist/parser-VAIMONF2.cjs.map +1 -0
- package/dist/{parser-GDYZDBZI.js → parser-VVGAZIAX.js} +7 -7
- package/dist/pdf-ocr-4CWHKKTX.cjs +14 -0
- package/dist/pdf-ocr-4CWHKKTX.cjs.map +1 -0
- package/dist/pdf-ocr-D6HR23OB.js +13 -0
- package/dist/pdf-ocr-WIMNTEVH.js +16 -0
- package/dist/{profile-io-4EE64K6Y.js → profile-io-PYCSBITE.js} +3 -3
- package/dist/{rasterize-QW7SSKHB.js → rasterize-TUBHYALD.js} +2 -2
- package/dist/render-QW5Z4IMW.js +10 -0
- package/dist/seal-OTOP5CLA.js +10 -0
- package/dist/{setup-JS7E2HFM.js → setup-6EUKBDMC.js} +3 -3
- package/dist/{watch-YISVPGW3.js → watch-JVGXPTCI.js} +10 -10
- package/package.json +1 -1
- package/dist/chunk-6WYMV73J.js.map +0 -1
- package/dist/chunk-BAJVZXC7.cjs.map +0 -1
- package/dist/chunk-KATZTHWA.cjs.map +0 -1
- package/dist/chunk-L5CDTOC3.cjs.map +0 -1
- package/dist/chunk-NIQ4JCQF.cjs.map +0 -1
- package/dist/chunk-SHBVD23C.cjs.map +0 -1
- package/dist/chunk-V3Q6I2AQ.cjs.map +0 -1
- package/dist/chunks-TRJGNO4N.js +0 -10
- package/dist/formula-JVBJ6QRG.cjs.map +0 -1
- package/dist/image-ocr-YTGAUHEP.cjs.map +0 -1
- package/dist/parser-WIRWVN5E.cjs.map +0 -1
- package/dist/pdf-ocr-O373AAN6.cjs +0 -14
- package/dist/pdf-ocr-O373AAN6.cjs.map +0 -1
- package/dist/pdf-ocr-OHUAQQMN.js +0 -16
- package/dist/pdf-ocr-XTE234WC.js +0 -13
- package/dist/render-2NID54BX.js +0 -10
- package/dist/seal-PTP4TWYR.js +0 -10
- /package/dist/{-Z4LCTGQR.js.map → -AN4MKOOO.js.map} +0 -0
- /package/dist/{chunk-WLZX2HTC.js.map → chunk-34IBS3JN.js.map} +0 -0
- /package/dist/{chunk-LJP3PK2S.js.map → chunk-AOTA4XTU.js.map} +0 -0
- /package/dist/{chunk-LUY46O7O.js.map → chunk-B4MQXOU5.js.map} +0 -0
- /package/dist/{chunk-JHPEDWJX.js.map → chunk-EWUFLCRP.js.map} +0 -0
- /package/dist/{chunk-OYQL3D4B.js.map → chunk-F3OPGGQ2.js.map} +0 -0
- /package/dist/{chunk-PIUPP3FL.js.map → chunk-HO7N6T36.js.map} +0 -0
- /package/dist/{chunk-PKCDYIIJ.js.map → chunk-JAY6BXZ6.js.map} +0 -0
- /package/dist/{chunk-TK7WUS47.js.map → chunk-KEF4UQYI.js.map} +0 -0
- /package/dist/{chunk-GL6BCNJV.js.map → chunk-NE7GR65O.js.map} +0 -0
- /package/dist/{chunk-Y7QB4IB6.js.map → chunk-PDXRLQD6.js.map} +0 -0
- /package/dist/{chunk-NOEYLJGJ.js.map → chunk-QYXQJPB7.js.map} +0 -0
- /package/dist/{chunk-NIBRVLGS.js.map → chunk-SV2YYPBO.js.map} +0 -0
- /package/dist/{chunk-VYGNPB2X.js.map → chunk-VR3ECURZ.js.map} +0 -0
- /package/dist/{chunk-LKZQ4564.js.map → chunk-WLUDCIOK.js.map} +0 -0
- /package/dist/{chunk-LREEDIEF.js.map → chunk-YVPYCQOG.js.map} +0 -0
- /package/dist/{chunks-TRJGNO4N.js.map → chunks-JUBR2TW7.js.map} +0 -0
- /package/dist/{formula-LFWZG7T7.js.map → formula-LFDXPFQH.js.map} +0 -0
- /package/dist/{formula-77TJPACH.js.map → formula-UYS7Z7IH.js.map} +0 -0
- /package/dist/{image-ocr-YZ56O63S.js.map → image-ocr-3YP5I2H4.js.map} +0 -0
- /package/dist/{image-ocr-6SY623KL.js.map → image-ocr-NOU6O7ZY.js.map} +0 -0
- /package/dist/{model-bundle-W7B3BIYS.js.map → model-bundle-AUKJF6GA.js.map} +0 -0
- /package/dist/{models-FUKPEVPE.js.map → models-QKSQSUWJ.js.map} +0 -0
- /package/dist/{parser-6UL2HLDH.js.map → parser-6HKVNDZM.js.map} +0 -0
- /package/dist/{parser-GDYZDBZI.js.map → parser-VVGAZIAX.js.map} +0 -0
- /package/dist/{pdf-ocr-OHUAQQMN.js.map → pdf-ocr-D6HR23OB.js.map} +0 -0
- /package/dist/{pdf-ocr-XTE234WC.js.map → pdf-ocr-WIMNTEVH.js.map} +0 -0
- /package/dist/{profile-io-4EE64K6Y.js.map → profile-io-PYCSBITE.js.map} +0 -0
- /package/dist/{rasterize-QW7SSKHB.js.map → rasterize-TUBHYALD.js.map} +0 -0
- /package/dist/{render-2NID54BX.js.map → render-QW5Z4IMW.js.map} +0 -0
- /package/dist/{seal-PTP4TWYR.js.map → seal-OTOP5CLA.js.map} +0 -0
- /package/dist/{setup-JS7E2HFM.js.map → setup-6EUKBDMC.js.map} +0 -0
- /package/dist/{watch-YISVPGW3.js.map → watch-JVGXPTCI.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -329,6 +329,8 @@ interface ExtractedImage {
|
|
|
329
329
|
data: Uint8Array;
|
|
330
330
|
/** MIME 타입 */
|
|
331
331
|
mimeType: string;
|
|
332
|
+
/** 원본 컨테이너 내 항목명 (HWPX/DOCX ZIP 경로, HWP5 BinData 스토리지명 — PDF 등 합성 이미지는 없음, #70) */
|
|
333
|
+
source?: string;
|
|
332
334
|
}
|
|
333
335
|
interface ParseFailure extends ParseResultBase {
|
|
334
336
|
success: false;
|
package/dist/index.d.ts
CHANGED
|
@@ -329,6 +329,8 @@ interface ExtractedImage {
|
|
|
329
329
|
data: Uint8Array;
|
|
330
330
|
/** MIME 타입 */
|
|
331
331
|
mimeType: string;
|
|
332
|
+
/** 원본 컨테이너 내 항목명 (HWPX/DOCX ZIP 경로, HWP5 BinData 스토리지명 — PDF 등 합성 이미지는 없음, #70) */
|
|
333
|
+
source?: string;
|
|
332
334
|
}
|
|
333
335
|
interface ParseFailure extends ParseResultBase {
|
|
334
336
|
success: false;
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
flattenLayoutTables,
|
|
9
9
|
inlineImagesIntoMarkdown,
|
|
10
10
|
mapPuaText
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VR3ECURZ.js";
|
|
12
12
|
import {
|
|
13
13
|
parsePageRange
|
|
14
14
|
} from "./chunk-GE43BE46.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
HEADING_RATIO_H1,
|
|
17
17
|
HEADING_RATIO_H2,
|
|
18
18
|
HEADING_RATIO_H3
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ONQHGZTS.js";
|
|
20
20
|
import {
|
|
21
21
|
KordocError,
|
|
22
22
|
VERSION,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
sanitizeHref,
|
|
30
30
|
stripDtd,
|
|
31
31
|
toArrayBuffer
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-7UUQXASL.js";
|
|
33
33
|
|
|
34
34
|
// src/index.ts
|
|
35
35
|
import { readFile } from "fs/promises";
|
|
@@ -2927,7 +2927,7 @@ function resolveImageBlocks(binDataMap, blocks, warnings, sweepUnreferenced) {
|
|
|
2927
2927
|
const ext = mime.includes("jpeg") ? "jpg" : mime.includes("png") ? "png" : mime.includes("gif") ? "gif" : mime.includes("bmp") ? "bmp" : "bin";
|
|
2928
2928
|
img = { filename: `image_${String(imageIndex).padStart(3, "0")}.${ext}`, data: new Uint8Array(bin.data), mime };
|
|
2929
2929
|
resolved.set(storageId, img);
|
|
2930
|
-
images.push({ filename: img.filename, data: img.data, mimeType: img.mime });
|
|
2930
|
+
images.push({ filename: img.filename, data: img.data, mimeType: img.mime, source: bin.name });
|
|
2931
2931
|
renamed.set(storageId, img.filename);
|
|
2932
2932
|
}
|
|
2933
2933
|
}
|
|
@@ -2951,7 +2951,7 @@ function resolveImageBlocks(binDataMap, blocks, warnings, sweepUnreferenced) {
|
|
|
2951
2951
|
const ext = mime.includes("jpeg") ? "jpg" : mime.includes("png") ? "png" : mime.includes("gif") ? "gif" : mime.includes("bmp") ? "bmp" : "bin";
|
|
2952
2952
|
const filename = `image_${String(imageIndex).padStart(3, "0")}.${ext}`;
|
|
2953
2953
|
const data = new Uint8Array(bin.data);
|
|
2954
|
-
images.push({ filename, data, mimeType: mime });
|
|
2954
|
+
images.push({ filename, data, mimeType: mime, source: bin.name });
|
|
2955
2955
|
blocks.push({ type: "image", text: filename, imageData: { data, mimeType: mime, filename: bin.name } });
|
|
2956
2956
|
}
|
|
2957
2957
|
}
|
|
@@ -3088,7 +3088,7 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3088
3088
|
const mimeType = imageExtToMime(ext);
|
|
3089
3089
|
imageIndex++;
|
|
3090
3090
|
const filename2 = `image_${String(imageIndex).padStart(3, "0")}.${mimeToExt(mimeType)}`;
|
|
3091
|
-
img = { filename: filename2, data, mimeType };
|
|
3091
|
+
img = { filename: filename2, data, mimeType, source: path };
|
|
3092
3092
|
images.push(img);
|
|
3093
3093
|
usedPaths.add(path);
|
|
3094
3094
|
break;
|
|
@@ -3127,7 +3127,7 @@ async function extractImagesFromZip(zip, blocks, decompressed, warnings, sweepUn
|
|
|
3127
3127
|
}
|
|
3128
3128
|
imageIndex++;
|
|
3129
3129
|
const filename = `image_${String(imageIndex).padStart(3, "0")}.${mimeToExt(mimeType)}`;
|
|
3130
|
-
const img = { filename, data, mimeType };
|
|
3130
|
+
const img = { filename, data, mimeType, source: file.name };
|
|
3131
3131
|
images.push(img);
|
|
3132
3132
|
blocks.push({ type: "image", text: filename, imageData: { data, mimeType, filename: file.name } });
|
|
3133
3133
|
} catch (err) {
|
|
@@ -19790,10 +19790,14 @@ async function buildImageMap(zip, rels, doc, warnings) {
|
|
|
19790
19790
|
gif: "image/gif",
|
|
19791
19791
|
bmp: "image/bmp",
|
|
19792
19792
|
wmf: "image/wmf",
|
|
19793
|
-
emf: "image/emf"
|
|
19793
|
+
emf: "image/emf",
|
|
19794
|
+
tif: "image/tiff",
|
|
19795
|
+
tiff: "image/tiff",
|
|
19796
|
+
svg: "image/svg+xml"
|
|
19794
19797
|
};
|
|
19795
19798
|
const filename = `image_${String(imgIdx).padStart(3, "0")}.${ext}`;
|
|
19796
|
-
|
|
19799
|
+
const mimeType = mimeMap[ext] ?? detectImageMime(data) ?? "application/octet-stream";
|
|
19800
|
+
images.push({ filename, data, mimeType, source: imgPath });
|
|
19797
19801
|
imageMap.set(embedId, filename);
|
|
19798
19802
|
} catch (err) {
|
|
19799
19803
|
warnings.push({
|
|
@@ -29530,7 +29534,7 @@ async function patchHwp(original, editedMarkdown, options) {
|
|
|
29530
29534
|
for (let i = 0; i < scans.length; i++) {
|
|
29531
29535
|
if (scans[i].repl.size === 0 && scans[i].inserts.size === 0) continue;
|
|
29532
29536
|
const newStream = serializeRecords(scans[i].records, scans[i].repl, scans[i].inserts);
|
|
29533
|
-
const content = compressed ?
|
|
29537
|
+
const content = compressed ? compressWithTail(newStream) : newStream;
|
|
29534
29538
|
out = replaceOleStream(out, sectionPaths[i], content);
|
|
29535
29539
|
}
|
|
29536
29540
|
data = new Uint8Array(out);
|
|
@@ -30013,6 +30017,26 @@ function rebuildCharShape(csData, coreStartUnit) {
|
|
|
30013
30017
|
});
|
|
30014
30018
|
return { buf, count: kept.length };
|
|
30015
30019
|
}
|
|
30020
|
+
var CRC_TABLE2 = (() => {
|
|
30021
|
+
const t = new Uint32Array(256);
|
|
30022
|
+
for (let n = 0; n < 256; n++) {
|
|
30023
|
+
let c = n;
|
|
30024
|
+
for (let k = 0; k < 8; k++) c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
|
|
30025
|
+
t[n] = c >>> 0;
|
|
30026
|
+
}
|
|
30027
|
+
return t;
|
|
30028
|
+
})();
|
|
30029
|
+
function crc322(buf) {
|
|
30030
|
+
let c = 4294967295;
|
|
30031
|
+
for (let i = 0; i < buf.length; i++) c = CRC_TABLE2[(c ^ buf[i]) & 255] ^ c >>> 8;
|
|
30032
|
+
return (c ^ 4294967295) >>> 0;
|
|
30033
|
+
}
|
|
30034
|
+
function compressWithTail(raw) {
|
|
30035
|
+
const tail = Buffer.alloc(8);
|
|
30036
|
+
tail.writeUInt32LE(crc322(raw), 0);
|
|
30037
|
+
tail.writeUInt32LE(raw.length >>> 0, 4);
|
|
30038
|
+
return Buffer.concat([deflateRawSync2(raw), tail]);
|
|
30039
|
+
}
|
|
30016
30040
|
function synthesizeLineSegs(lineSegData, newRaw, startUnits) {
|
|
30017
30041
|
if (lineSegData.length < 36) return null;
|
|
30018
30042
|
const seg0 = lineSegData.subarray(0, 36);
|
|
@@ -30090,6 +30114,15 @@ function stageParaPatch(scan, para2, newPlain, skip) {
|
|
|
30090
30114
|
scan.repl.set(para2.lineSegIdx, synth.buf);
|
|
30091
30115
|
newHeader.writeUInt16LE(synth.count, 16);
|
|
30092
30116
|
}
|
|
30117
|
+
} else {
|
|
30118
|
+
const lineSegData = records[para2.lineSegIdx].data;
|
|
30119
|
+
const segCount = Math.floor(lineSegData.length / 36);
|
|
30120
|
+
let keep = 1;
|
|
30121
|
+
while (keep < segCount && lineSegData.readUInt32LE(keep * 36) < nChars) keep++;
|
|
30122
|
+
if (keep < segCount) {
|
|
30123
|
+
scan.repl.set(para2.lineSegIdx, Buffer.from(lineSegData.subarray(0, keep * 36)));
|
|
30124
|
+
newHeader.writeUInt16LE(keep, 16);
|
|
30125
|
+
}
|
|
30093
30126
|
}
|
|
30094
30127
|
scan.repl.set(para2.headerIdx, newHeader);
|
|
30095
30128
|
return 1;
|
|
@@ -31959,7 +31992,7 @@ async function dispatch(format, buffer, opts) {
|
|
|
31959
31992
|
}
|
|
31960
31993
|
async function parseImage(buffer, options) {
|
|
31961
31994
|
try {
|
|
31962
|
-
const { parseImageDocument } = await import("./image-ocr-
|
|
31995
|
+
const { parseImageDocument } = await import("./image-ocr-3YP5I2H4.js");
|
|
31963
31996
|
const { blocks, warnings } = await parseImageDocument(buffer, options);
|
|
31964
31997
|
return {
|
|
31965
31998
|
success: true,
|
|
@@ -32018,7 +32051,7 @@ async function parseHwp(buffer, options) {
|
|
|
32018
32051
|
async function parsePdf(buffer, options) {
|
|
32019
32052
|
let parsePdfDocument;
|
|
32020
32053
|
try {
|
|
32021
|
-
const mod = await import("./parser-
|
|
32054
|
+
const mod = await import("./parser-6HKVNDZM.js");
|
|
32022
32055
|
parsePdfDocument = mod.parsePdfDocument;
|
|
32023
32056
|
} catch {
|
|
32024
32057
|
return {
|