kordoc 4.17.1 → 4.17.2
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 +3 -0
- package/dist/{-UNMTWAEI.js → -2UA2JHVA.js} +10 -10
- package/dist/{chunk-B4PUQ4FP.js → chunk-2XHXABCX.js} +2 -2
- package/dist/{chunk-MPAN6S5O.js → chunk-3N272C5L.js} +243 -114
- package/dist/chunk-3N272C5L.js.map +1 -0
- package/dist/{chunk-EULS3PDF.js → chunk-4HRJISJF.js} +3 -3
- package/dist/{chunk-KBIQGGNY.js → chunk-4TSYMJDL.js} +242 -113
- package/dist/chunk-4TSYMJDL.js.map +1 -0
- package/dist/{chunk-3M2BMQJY.js → chunk-5JZEY5IL.js} +119 -77
- package/dist/chunk-5JZEY5IL.js.map +1 -0
- package/dist/{chunk-5FCLQVT5.cjs → chunk-6DOCSYEM.cjs} +113 -71
- package/dist/chunk-6DOCSYEM.cjs.map +1 -0
- package/dist/{chunk-N6MPDM55.js → chunk-6OCKAXIS.js} +2 -2
- package/dist/{chunk-QXNQ2HNB.js → chunk-A2W2JQ3S.js} +2 -2
- package/dist/{chunk-66YTQ3NQ.js → chunk-C4MVZXB5.js} +2 -2
- package/dist/{chunk-GYHY2YLV.js → chunk-FGL4IGOT.js} +4 -4
- package/dist/{chunk-BEJYCCDN.cjs → chunk-GPC72VSF.cjs} +6 -6
- package/dist/chunk-GPC72VSF.cjs.map +1 -0
- package/dist/chunk-GS7T56RP.cjs.map +1 -1
- package/dist/{chunk-FMP4POMD.js → chunk-GYTL6WT3.js} +3 -3
- package/dist/{chunk-4NH45EEB.cjs → chunk-HAW2VL62.cjs} +12 -12
- package/dist/chunk-HAW2VL62.cjs.map +1 -0
- package/dist/chunk-J55UQC5H.cjs.map +1 -1
- package/dist/{chunk-ELNYQRBN.js → chunk-JY2NBFIG.js} +14 -12
- package/dist/chunk-JY2NBFIG.js.map +1 -0
- package/dist/{chunk-BQAJHAWR.js → chunk-KQIYC2ZU.js} +2 -2
- package/dist/{chunk-GRHSVGSB.cjs → chunk-KZVQK5NS.cjs} +2 -2
- package/dist/chunk-KZVQK5NS.cjs.map +1 -0
- package/dist/{chunk-AUFO5LVN.js → chunk-MDCTITUG.js} +2 -2
- package/dist/{chunk-OVSCNCT6.js → chunk-O4CB7D2Q.js} +2 -2
- package/dist/{chunk-3J3BJIOZ.js → chunk-SDRKHEVT.js} +2 -2
- package/dist/{chunk-HAPCN7BD.js → chunk-VU26WGE5.js} +37 -15
- package/dist/chunk-VU26WGE5.js.map +1 -0
- package/dist/{chunk-BHUYJBSQ.js → chunk-WJLICIYV.js} +2 -2
- package/dist/{chunk-ZRXQDJPM.cjs → chunk-WWMKIHF7.cjs} +336 -207
- package/dist/chunk-WWMKIHF7.cjs.map +1 -0
- package/dist/{chunk-MY6Q2HFW.js → chunk-XZA6X34R.js} +121 -77
- package/dist/chunk-XZA6X34R.js.map +1 -0
- package/dist/{chunk-4CSY3QUO.js → chunk-YGKC6E6A.js} +2 -2
- package/dist/chunk-YIANW5QX.cjs.map +1 -1
- package/dist/{chunk-E6TJNN2U.js → chunk-ZDX5PIWR.js} +2 -2
- package/dist/chunks-EBWJR55V.js +10 -0
- package/dist/cli.js +25 -25
- package/dist/{formula-K7UF5MBF.cjs → formula-5RETDCIC.cjs} +9 -9
- package/dist/formula-5RETDCIC.cjs.map +1 -0
- package/dist/{formula-VH545WNH.js → formula-MBLN2DG4.js} +4 -4
- package/dist/{formula-3GB47YTH.js → formula-QZZDW5GW.js} +3 -3
- package/dist/{image-ocr-6AKQWAU2.js → image-ocr-CJSO3QSR.js} +7 -7
- package/dist/{image-ocr-VJFZCFAI.js → image-ocr-EREKAS47.js} +5 -5
- package/dist/{image-ocr-ZPQTFYSK.cjs → image-ocr-PSPVRLB5.cjs} +14 -14
- package/dist/image-ocr-PSPVRLB5.cjs.map +1 -0
- package/dist/index.cjs +612 -588
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +41 -17
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +21 -21
- package/dist/{model-bundle-P2XOZ76Q.js → model-bundle-MA4MMCRJ.js} +5 -5
- package/dist/{models-GPHBC2YJ.js → models-SEJ7LNSN.js} +5 -5
- package/dist/page-range-QHHFTL7X.cjs.map +1 -1
- package/dist/{parser-YIIRSBZS.js → parser-M5WHRX25.js} +40 -22
- package/dist/parser-M5WHRX25.js.map +1 -0
- package/dist/{parser-6SPYH3RU.cjs → parser-QILYPWSI.cjs} +211 -193
- package/dist/parser-QILYPWSI.cjs.map +1 -0
- package/dist/{parser-BVUFTU2O.js → parser-VH3F4EQU.js} +37 -19
- package/dist/parser-VH3F4EQU.js.map +1 -0
- package/dist/pdf-ocr-3SZUM3CN.cjs +16 -0
- package/dist/pdf-ocr-3SZUM3CN.cjs.map +1 -0
- package/dist/pdf-ocr-QB2TB5W5.js +18 -0
- package/dist/pdf-ocr-XC33L43D.js +15 -0
- package/dist/{profile-io-GU45HTYP.js → profile-io-5YB627EO.js} +3 -3
- package/dist/{rasterize-OWHFWG6R.js → rasterize-V2XHHS2I.js} +3 -3
- package/dist/{redact-doc-YTP6AAUP.js → redact-doc-5MK5L5IQ.js} +10 -10
- package/dist/{render-525LXDMV.js → render-SYZMHYK6.js} +6 -6
- package/dist/seal-IPKIQHYB.js +10 -0
- package/dist/{setup-NOXZLS7G.js → setup-ZPLJENSK.js} +3 -3
- package/dist/visual-RTTGNOAE.js +20 -0
- package/dist/{watch-NDRTCLVT.js → watch-FNWHVKK3.js} +11 -11
- package/package.json +1 -1
- package/dist/chunk-3M2BMQJY.js.map +0 -1
- package/dist/chunk-4NH45EEB.cjs.map +0 -1
- package/dist/chunk-5FCLQVT5.cjs.map +0 -1
- package/dist/chunk-BEJYCCDN.cjs.map +0 -1
- package/dist/chunk-ELNYQRBN.js.map +0 -1
- package/dist/chunk-GRHSVGSB.cjs.map +0 -1
- package/dist/chunk-HAPCN7BD.js.map +0 -1
- package/dist/chunk-KBIQGGNY.js.map +0 -1
- package/dist/chunk-MPAN6S5O.js.map +0 -1
- package/dist/chunk-MY6Q2HFW.js.map +0 -1
- package/dist/chunk-ZRXQDJPM.cjs.map +0 -1
- package/dist/chunks-P5Y7V73K.js +0 -10
- package/dist/formula-K7UF5MBF.cjs.map +0 -1
- package/dist/image-ocr-ZPQTFYSK.cjs.map +0 -1
- package/dist/parser-6SPYH3RU.cjs.map +0 -1
- package/dist/parser-BVUFTU2O.js.map +0 -1
- package/dist/parser-YIIRSBZS.js.map +0 -1
- package/dist/pdf-ocr-5YBMXW54.js +0 -18
- package/dist/pdf-ocr-EAVNHK3V.js +0 -15
- package/dist/pdf-ocr-J5GB5BW6.cjs +0 -16
- package/dist/pdf-ocr-J5GB5BW6.cjs.map +0 -1
- package/dist/seal-S4KJGZUI.js +0 -10
- package/dist/visual-AU3NH6EO.js +0 -20
- /package/dist/{-UNMTWAEI.js.map → -2UA2JHVA.js.map} +0 -0
- /package/dist/{chunk-B4PUQ4FP.js.map → chunk-2XHXABCX.js.map} +0 -0
- /package/dist/{chunk-EULS3PDF.js.map → chunk-4HRJISJF.js.map} +0 -0
- /package/dist/{chunk-N6MPDM55.js.map → chunk-6OCKAXIS.js.map} +0 -0
- /package/dist/{chunk-QXNQ2HNB.js.map → chunk-A2W2JQ3S.js.map} +0 -0
- /package/dist/{chunk-66YTQ3NQ.js.map → chunk-C4MVZXB5.js.map} +0 -0
- /package/dist/{chunk-GYHY2YLV.js.map → chunk-FGL4IGOT.js.map} +0 -0
- /package/dist/{chunk-FMP4POMD.js.map → chunk-GYTL6WT3.js.map} +0 -0
- /package/dist/{chunk-BQAJHAWR.js.map → chunk-KQIYC2ZU.js.map} +0 -0
- /package/dist/{chunk-AUFO5LVN.js.map → chunk-MDCTITUG.js.map} +0 -0
- /package/dist/{chunk-OVSCNCT6.js.map → chunk-O4CB7D2Q.js.map} +0 -0
- /package/dist/{chunk-3J3BJIOZ.js.map → chunk-SDRKHEVT.js.map} +0 -0
- /package/dist/{chunk-BHUYJBSQ.js.map → chunk-WJLICIYV.js.map} +0 -0
- /package/dist/{chunk-4CSY3QUO.js.map → chunk-YGKC6E6A.js.map} +0 -0
- /package/dist/{chunk-E6TJNN2U.js.map → chunk-ZDX5PIWR.js.map} +0 -0
- /package/dist/{chunks-P5Y7V73K.js.map → chunks-EBWJR55V.js.map} +0 -0
- /package/dist/{formula-VH545WNH.js.map → formula-MBLN2DG4.js.map} +0 -0
- /package/dist/{formula-3GB47YTH.js.map → formula-QZZDW5GW.js.map} +0 -0
- /package/dist/{image-ocr-6AKQWAU2.js.map → image-ocr-CJSO3QSR.js.map} +0 -0
- /package/dist/{image-ocr-VJFZCFAI.js.map → image-ocr-EREKAS47.js.map} +0 -0
- /package/dist/{model-bundle-P2XOZ76Q.js.map → model-bundle-MA4MMCRJ.js.map} +0 -0
- /package/dist/{models-GPHBC2YJ.js.map → models-SEJ7LNSN.js.map} +0 -0
- /package/dist/{pdf-ocr-5YBMXW54.js.map → pdf-ocr-QB2TB5W5.js.map} +0 -0
- /package/dist/{pdf-ocr-EAVNHK3V.js.map → pdf-ocr-XC33L43D.js.map} +0 -0
- /package/dist/{profile-io-GU45HTYP.js.map → profile-io-5YB627EO.js.map} +0 -0
- /package/dist/{rasterize-OWHFWG6R.js.map → rasterize-V2XHHS2I.js.map} +0 -0
- /package/dist/{redact-doc-YTP6AAUP.js.map → redact-doc-5MK5L5IQ.js.map} +0 -0
- /package/dist/{render-525LXDMV.js.map → render-SYZMHYK6.js.map} +0 -0
- /package/dist/{seal-S4KJGZUI.js.map → seal-IPKIQHYB.js.map} +0 -0
- /package/dist/{setup-NOXZLS7G.js.map → setup-ZPLJENSK.js.map} +0 -0
- /package/dist/{visual-AU3NH6EO.js.map → visual-RTTGNOAE.js.map} +0 -0
- /package/dist/{watch-NDRTCLVT.js.map → watch-FNWHVKK3.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/mong-e/workspace/kordoc/dist/chunk-J55UQC5H.cjs","../src/page-range.ts"],"names":[],"mappings":"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","file":"/Users/mong-e/workspace/kordoc/dist/chunk-J55UQC5H.cjs","sourcesContent":[null,"/** 페이지/섹션 범위 파싱 유틸리티 */\n\n/**\n * 페이지 범위 지정을 1-based Set<number>로 변환.\n *\n * @param spec - [1,2,3] 또는 \"1-3\" 또는 \"1,3,5-7\"\n * @param maxPages - 최대 페이지 수 (클램핑 상한)\n * @returns 1-based 페이지 번호 Set\n */\nexport function parsePageRange(spec: number[] | string, maxPages: number): Set<number> {\n const result = new Set<number>()\n if (maxPages <= 0) return result\n\n if (Array.isArray(spec)) {\n for (const n of spec) {\n const page = Math.round(n)\n if (page >= 1 && page <= maxPages) result.add(page)\n }\n return result\n }\n\n if (typeof spec !== \"string\" || spec.trim() === \"\") return result\n\n const parts = spec.split(\",\")\n for (const part of parts) {\n const trimmed = part.trim()\n if (!trimmed) continue\n\n const rangeMatch = trimmed.match(/^(\\d+)\\s*-\\s*(\\d+)$/)\n if (rangeMatch) {\n const start = Math.max(1, parseInt(rangeMatch[1], 10))\n const end = Math.min(maxPages, parseInt(rangeMatch[2], 10))\n for (let i = start; i <= end; i++) result.add(i)\n } else {\n const page = parseInt(trimmed, 10)\n if (!isNaN(page) && page >= 1 && page <= maxPages) result.add(page)\n }\n }\n\n return result\n}\n\n/**\n * 파싱 상한 이후에 실제 문서 범위에 속하는 요청이 있는가. 경고용으로 전체 범위를 Set에 펼치면\n * 페이지 상한을 우회해 거대한 범위만큼 메모리를 쓰므로 구간 교차만 검사한다.\n * 배열의 Math.round, 단일 문자열의 parseInt 등 parsePageRange의 기존 문법은 그대로 유지한다.\n */\nexport function hasRequestedPagesAfter(spec: number[] | string, maxParsed: number, total: number): boolean {\n if (total <= 0 || total <= maxParsed) return false\n const beyond = (page: number): boolean => page >= 1 && page <= total && page > maxParsed\n if (Array.isArray(spec)) return spec.some(n => beyond(Math.round(n)))\n if (typeof spec !== \"string\" || spec.trim() === \"\") return false\n\n for (const part of spec.split(\",\")) {\n const trimmed = part.trim()\n if (!trimmed) continue\n const rangeMatch = trimmed.match(/^(\\d+)\\s*-\\s*(\\d+)$/)\n if (rangeMatch) {\n const start = Math.max(1, parseInt(rangeMatch[1], 10), Math.floor(maxParsed) + 1)\n const end = Math.min(total, parseInt(rangeMatch[2], 10))\n if (start <= end) return true\n } else if (beyond(parseInt(trimmed, 10))) return true\n }\n return false\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/Users/mong-e/workspace/kordoc-quality-99/dist/chunk-J55UQC5H.cjs","../src/page-range.ts"],"names":[],"mappings":"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","file":"/Users/mong-e/workspace/kordoc-quality-99/dist/chunk-J55UQC5H.cjs","sourcesContent":[null,"/** 페이지/섹션 범위 파싱 유틸리티 */\n\n/**\n * 페이지 범위 지정을 1-based Set<number>로 변환.\n *\n * @param spec - [1,2,3] 또는 \"1-3\" 또는 \"1,3,5-7\"\n * @param maxPages - 최대 페이지 수 (클램핑 상한)\n * @returns 1-based 페이지 번호 Set\n */\nexport function parsePageRange(spec: number[] | string, maxPages: number): Set<number> {\n const result = new Set<number>()\n if (maxPages <= 0) return result\n\n if (Array.isArray(spec)) {\n for (const n of spec) {\n const page = Math.round(n)\n if (page >= 1 && page <= maxPages) result.add(page)\n }\n return result\n }\n\n if (typeof spec !== \"string\" || spec.trim() === \"\") return result\n\n const parts = spec.split(\",\")\n for (const part of parts) {\n const trimmed = part.trim()\n if (!trimmed) continue\n\n const rangeMatch = trimmed.match(/^(\\d+)\\s*-\\s*(\\d+)$/)\n if (rangeMatch) {\n const start = Math.max(1, parseInt(rangeMatch[1], 10))\n const end = Math.min(maxPages, parseInt(rangeMatch[2], 10))\n for (let i = start; i <= end; i++) result.add(i)\n } else {\n const page = parseInt(trimmed, 10)\n if (!isNaN(page) && page >= 1 && page <= maxPages) result.add(page)\n }\n }\n\n return result\n}\n\n/**\n * 파싱 상한 이후에 실제 문서 범위에 속하는 요청이 있는가. 경고용으로 전체 범위를 Set에 펼치면\n * 페이지 상한을 우회해 거대한 범위만큼 메모리를 쓰므로 구간 교차만 검사한다.\n * 배열의 Math.round, 단일 문자열의 parseInt 등 parsePageRange의 기존 문법은 그대로 유지한다.\n */\nexport function hasRequestedPagesAfter(spec: number[] | string, maxParsed: number, total: number): boolean {\n if (total <= 0 || total <= maxParsed) return false\n const beyond = (page: number): boolean => page >= 1 && page <= total && page > maxParsed\n if (Array.isArray(spec)) return spec.some(n => beyond(Math.round(n)))\n if (typeof spec !== \"string\" || spec.trim() === \"\") return false\n\n for (const part of spec.split(\",\")) {\n const trimmed = part.trim()\n if (!trimmed) continue\n const rangeMatch = trimmed.match(/^(\\d+)\\s*-\\s*(\\d+)$/)\n if (rangeMatch) {\n const start = Math.max(1, parseInt(rangeMatch[1], 10), Math.floor(maxParsed) + 1)\n const end = Math.min(total, parseInt(rangeMatch[2], 10))\n if (start <= end) return true\n } else if (beyond(parseInt(trimmed, 10))) return true\n }\n return false\n}\n"]}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
findChildByLocalName,
|
|
23
23
|
hwpFaceToCssStack,
|
|
24
24
|
parseRenderStyles
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-2XHXABCX.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-
|
|
36
|
+
} from "./chunk-WJLICIYV.js";
|
|
37
37
|
import {
|
|
38
38
|
loadSharp,
|
|
39
39
|
rasterizePageSvg
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-MDCTITUG.js";
|
|
41
41
|
import {
|
|
42
42
|
KordocError,
|
|
43
43
|
escapeHtml,
|
|
44
44
|
precheckZipSize,
|
|
45
45
|
sanitizeHref,
|
|
46
46
|
toArrayBuffer
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-A2W2JQ3S.js";
|
|
48
48
|
|
|
49
49
|
// src/render/svg-render.ts
|
|
50
50
|
import JSZip from "jszip";
|
|
@@ -1387,11 +1387,10 @@ var FONTS = {
|
|
|
1387
1387
|
function hasFontMetrics(face) {
|
|
1388
1388
|
return !!face && Object.prototype.hasOwnProperty.call(FONTS, face.trim());
|
|
1389
1389
|
}
|
|
1390
|
-
function
|
|
1390
|
+
function fontWidthFn(face) {
|
|
1391
|
+
if (!hasFontMetrics(face)) return null;
|
|
1391
1392
|
const m = FONTS[face.trim()];
|
|
1392
|
-
|
|
1393
|
-
if (cp >= 32 && cp <= 126) return m.ascii[cp - 32];
|
|
1394
|
-
return m.ex[cp] ?? m.cjk;
|
|
1393
|
+
return (cp) => cp >= 32 && cp <= 126 ? m.ascii[cp - 32] : m.ex[cp] ?? m.cjk;
|
|
1395
1394
|
}
|
|
1396
1395
|
|
|
1397
1396
|
// src/hwpx/text-metrics.ts
|
|
@@ -1581,7 +1580,7 @@ function widthFnOf(faceClass) {
|
|
|
1581
1580
|
if (faceClass === "gothic") return gothicWidthEm1000;
|
|
1582
1581
|
if (faceClass?.startsWith("font:")) {
|
|
1583
1582
|
const face = faceClass.slice(5);
|
|
1584
|
-
return (
|
|
1583
|
+
return fontWidthFn(face) ?? gothicWidthEm1000;
|
|
1585
1584
|
}
|
|
1586
1585
|
return charWidthEm1000;
|
|
1587
1586
|
}
|
|
@@ -1632,7 +1631,8 @@ function simulateWrap(text, firstWidth, contWidth, height, ratioPct, mode = "kee
|
|
|
1632
1631
|
const breakBefore = (unitPos, w) => {
|
|
1633
1632
|
let bp = unitPos;
|
|
1634
1633
|
const u = text[unitPos];
|
|
1635
|
-
|
|
1634
|
+
const prevStart = (end) => end - (end >= 2 && /[\uDC00-\uDFFF]/.test(text[end - 1]) && /[\uD800-\uDBFF]/.test(text[end - 2]) ? 2 : 1);
|
|
1635
|
+
if (u !== void 0 && FORBID_START.has(u) && prevStart(bp) > lineStart() && text[bp - 1] !== " ") bp = prevStart(bp);
|
|
1636
1636
|
while (bp - 1 > lineStart() && FORBID_END.has(text[bp - 1])) bp--;
|
|
1637
1637
|
if (bp <= lineStart()) bp = unitPos;
|
|
1638
1638
|
starts.push(bp);
|
|
@@ -5802,7 +5802,9 @@ function parseCell(records, lhIdx, end, ctx) {
|
|
|
5802
5802
|
if (isHeader) cell.isHeader = true;
|
|
5803
5803
|
if (rec.data.length >= 24 && rec.data.readUInt32LE(20) > A4_HEIGHT) cell.pageSpanning = true;
|
|
5804
5804
|
if (rec.data.length >= 34) {
|
|
5805
|
-
const
|
|
5805
|
+
const borderFillId = rec.data.readUInt16LE(32);
|
|
5806
|
+
const definitions = ctx.docInfo?.borderEdges;
|
|
5807
|
+
const edges = borderFillId === 0 && definitions?.length ? { t: false, b: false, l: false, r: false } : definitions?.[borderFillId - 1];
|
|
5806
5808
|
if (edges) cell.edges = edges;
|
|
5807
5809
|
}
|
|
5808
5810
|
return cell;
|
|
@@ -7385,4 +7387,4 @@ export {
|
|
|
7385
7387
|
cropRect,
|
|
7386
7388
|
extractRenderedRegions
|
|
7387
7389
|
};
|
|
7388
|
-
//# sourceMappingURL=chunk-
|
|
7390
|
+
//# sourceMappingURL=chunk-JY2NBFIG.js.map
|